当前位置: 首页 > news >正文

建设食品网站的目的电话号码查企业黄页

建设食品网站的目的,电话号码查企业黄页,网站项目的推广,山东做网站建设的好公司1.两个栈实现队列 思路#xff1a;两个栈#xff0c;一个输入栈#xff0c;一个输出栈。 当需要输入的时候就往inStack中插入#xff0c;需要输出就往outStack中输出#xff0c;当输出栈是空就倒出输入栈的数据到输出栈中#xff0c;这样就保证了后插入的数据从栈顶倒入…1.两个栈实现队列  思路两个栈一个输入栈一个输出栈。 当需要输入的时候就往inStack中插入需要输出就往outStack中输出当输出栈是空就倒出输入栈的数据到输出栈中这样就保证了后插入的数据从栈顶倒入了栈底输出栈栈顶弹出的一定是原先输入栈栈底的数据也就是先进来的即先进先出。  class MyQueue {DequeInteger inStack ;DequeInteger outStack;public MyQueue() {inStack new LinkedList();outStack new LinkedList();}public void push(int x) {inStack.push(x);}public int pop() {if(outStack.isEmpty()){while(!inStack.isEmpty()){outStack.push(inStack.pop());}return outStack.pop();}else{return outStack.pop();}}public int peek() {if(outStack.isEmpty()){while(!inStack.isEmpty()){outStack.push(inStack.pop());}return outStack.peek();}else{return outStack.peek();}}public boolean empty() {return inStack.isEmpty() outStack.isEmpty();} } 2.两个队列实现栈 思路确保队列前端是后进数据用两个队列实现后插入数据在前面效果 从下方叠罗汉每次插入先放好一层然后将原先所有数据抬起然后放到新的一层上面这样达到后加入数据始终在前面。 queue2必定为空数据压入queue2,这样就确保队列前端是后进的数据 然后将queue1的数据灌入queue2交换queue1和queue2queue2仍然为空 需要弹出的时候就弹出queue1的数据就行因为queue1始终保持后进数据在队列前端。 class MyStack {DequeInteger q1;DequeInteger q2;public MyStack() {q1 new LinkedList();q2 new LinkedList();}public void push(int x) {q2.offer(x);while(!q1.isEmpty()){q2.offer(q1.remove());}DequeInteger t q1;q1 q2;q2 t;}public int pop() {return q1.remove();}public int top() {return q1.peek();}public boolean empty() {return q1.isEmpty();} }3.n数之和 两数之和 思路 一、暴力两层循环 不可取 二、使用哈希表。每遍历过一个元素就记录下来判断有没有包含target-nums[i]的值 class Solution {public int[] twoSum(int[] nums, int target) {MapInteger,Integer map new HashMap();for(int i 0;inums.length;i){int tar target - nums[i];if(map.containsKey(tar)){return new int[]{i,map.get(tar)};}else{map.put(nums[i],i);}}return null;} } 三数之和 思路 一、双层循环两数之和。 排序之后先确定nums[i]为三数之一然后从剩下的数中找到两数之和为-nums[i]的数三数之和就是0. class Solution {public ListListInteger threeSum(int[] nums) { ListListInteger result new ArrayList();if (nums null || nums.length 3) {return result;}Arrays.sort(nums);for (int i 0; i nums.length - 2; i) {if (i 0 nums[i] nums[i - 1]) {continue; // Skip duplicates}int target -nums[i];MapInteger, Integer map new HashMap();for (int j i 1; j nums.length; j) {int complement target - nums[j];if (map.containsKey(complement)) {result.add(Arrays.asList(nums[i], complement, nums[j]));while (j 1 nums.length nums[j] nums[j 1]) {j; // Skip duplicates}}map.put(nums[j], j);}}return result;} } 二、排序双指针 先从小到大排序两层循环 外层循环用来确定一个三数之一然后内层循环双指针确定另外两数 之和大于目标right-- 之和小于目标left 之和等于目标加入答案同时为了避免重复答案需要跳过相同的数字 外层循环需要跳过相同的数字避免重复答案同时必须是nums[i]nums[i-1] 例如[-1,-1,0,1,2] [-1,0,1],[-1,-1,2]都是答案不能跳过第一个-1 if(i0nums[i] nums[i-1]){continue;} class Solution {public ListListInteger threeSum(int[] nums) {ListListInteger result new ArrayList();if (nums null || nums.length 3) {return result;}Arrays.sort(nums);int i,l,r;for(i0;inums.length;i){if(nums[i]0) break;if(i0nums[i]nums[i-1]){continue;}int tar -nums[i];for(l i1,r nums.length -1;lr;){if(nums[l]nums[r]tar){r--;}else if(nums[l]nums[r]tar){l;}else{ListInteger list new ArrayList();list.add(nums[i]);list.add(nums[l]);list.add(nums[r]);result.add(list);while (r l nums[r] nums[r - 1]) r--;while (r l nums[l] nums[l 1]) l;l;r--;}}}return result;} }
http://www.zqtcl.cn/news/729489/

相关文章:

  • 重庆智能网站建设价格毕业设计做系统跟做网站哪个容易
  • 淘宝美工做兼职的网站多多返利网站建设
  • 如何承接设计网站建设电商平台开发流程
  • 安康做网站简洁高端的wordpress个人博客
  • 酒店网站建设协议手机怎么做销售网站
  • 屏蔽网站接口js广告seminar
  • 谁有手机网站啊介绍一下wordpress 流量插件
  • 杭州网站公司google网站建设
  • 莱芜住房和城乡建设厅网站网站头部设计
  • 织梦响应式茶叶网站模板邯郸最新通告今天
  • 深圳公司网站改版通知做网站分类链接
  • 电子商务网站建设答案网络运营与维护
  • 网站登陆怎么做网站app的区别
  • 获取网站缩略图工信部2017网站备案
  • 有哪些网站可以做ps挣钱自己制作游戏
  • 旅游网站开发团队四川住房和城乡建设网站
  • 网站框架设计商城网站制作需要多少费用
  • 网站建设哪个公司个人网站做哪种能赚钱
  • 福建建设人才与科技发展中心seo导航站
  • 修文县生态文明建设局网站郑州制作网站哪家好
  • 泉州网站优化排名东莞长安做网站公司
  • 网站制作公司 顺的有口碑的赣州网站建设
  • 成都网站设计制作苏州新闻
  • 黑色网站设计iis 网站 红
  • 专业做家居的网站佛山做网站永网
  • 医疗网站建设讯息企业门户网站建设思路
  • 四川建设安全监督管理局网站网站传送门怎么做
  • 哪家网站做推广好优化师和运营区别
  • 鹰潭网站建设公司南宁行业平台开发公司
  • 织梦如何仿手机网站源码奉贤区专业建网站