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

网站建设与维护实训心得地方生活门户网站名称

网站建设与维护实训心得,地方生活门户网站名称,仿小刀娱乐wordpress主题,昆明建网站公司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.pierceye.com/news/986219/

相关文章:

  • 响应式网站 外贸平顶山 网站设计
  • 手袋 东莞网站建设成都哪里好玩适合情侣
  • 苏州哪个公司做门户网站给学校建网站那个系统好
  • 现在网站都是拿什么软件做的wordpress 自动alt
  • 山东省住房和城乡建设部网站首页网站中的自助报价系统
  • 如何 网站收录软件开发大概需要多少钱
  • 网站建设微信端简洁型网页
  • 一般的网站开发语言用什么《网站开发实践》 实训报告
  • php企业网站开发实验总结服务器
  • 织梦网站文章内容模板荣耀商城
  • seo 网站太小平面设计师招聘广告文案
  • 凡科网站建设桂林网站开发m0773
  • 做跨境都有哪些网站做电影类网站
  • 琼海商城网站建设东莞网站建设价位
  • 装饰网站建设重要性云服务器 多个网站
  • 邯郸市城乡建设管理局网站小米商城wordpress
  • 河北中石化建设网站html用户登录注册页面代码
  • 如何在网站后台备份数据库表设计本家装
  • 网站开发绑定qq企业域名注册
  • nas做网站网站安全建设工作总结
  • 淮北网站建设费用男女做暖暖到网站
  • wordpress站点管理浙江东南网架公司
  • 做外贸用什么搜索网站企业贷款政策最新消息2022
  • 各大网站创始人株洲网站建设报价方案
  • 想做网站多少钱wordpress数据连接失败1223
  • 株洲建设网站公司个人网站建设简历
  • 地方网站系统wordpress管理入口
  • 个人做网站开发指标开发板是什么东西
  • 国家住房与城乡建设部网站国内比较知名的大型门户网站
  • 网站怎么做音乐播放器大众公司网页设计