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

万和-集训刷题1

leetcode 2 两数之和

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode p1=l1;ListNode p2=l2;int next=0;ListNode head=new ListNode(-1);ListNode tail=head;while (p1!=null||p2!=null){int  n1=p1!=null?p1.val:0;int  n2=p2!=null?p2.val:0;int sum=n1+n2+next;//第一个节点的位置tail.next=new ListNode(sum%10);  //新建这个节点 节点的值和10进行取模tail=tail.next;next=sum/10;//p1和p2 如果不为空就往后进行移动if (p1!=null){p1=p1.next;}if(p2!=null){p2=p2.next;}}//如果结尾是大于0的 tail的下一个节点再新建一个即可。if (next > 0) {tail.next = new ListNode(next);}return head.next;}
}

删除倒数第k个节点,需要找到倒数第n+1个节点。
采用双指针的思想,第一个指针先移动k次,还剩下n-k次,第二个指针和第一个指针同时移动n- k次。 采用这样的思想找到倒数n+1个节点即可。

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {//  dummyListNode dummy=new ListNode(-1);dummy.next=head;ListNode x=findFormEnd(dummy,n+1);x.next=x.next.next; //跳过x的值,让x指向x的下一个return  dummy.next;}ListNode findFormEnd(ListNode head,int k){ListNode p1=head;for (int i = 0; i <k ; i++) {p1=p1.next;}ListNode p2=head;while (p1!=null){p1=p1.next;p2=p2.next;}return  p2;}
}

三数之和

class Solution {public List<List<Integer>> threeSum(int[] nums) {int n = nums.length;Arrays.sort(nums);List<List<Integer>> ans = new ArrayList<List<Integer>>();// 枚举 afor (int first = 0; first < n; ++first) {// 需要和上一次枚举的数不相同if (first > 0 && nums[first] == nums[first - 1]) {continue;}// c 对应的指针初始指向数组的最右端int third = n - 1;int target = -nums[first]; //target变为复活来  i+j+k等于0   i必然是小于0的// 枚举 bfor (int second = first + 1; second < n; ++second) {// 需要和上一次枚举的数不相同if (second > first + 1 && nums[second] == nums[second - 1]) {continue;}// 需要保证 b 的指针在 c 的指针的左侧while (second < third && nums[second] + nums[third] > target) {--third;}// 如果指针重合,随着 b 后续的增加// 就不会有满足 a+b+c=0 并且 b<c 的 c 了,可以退出循环if (second == third) {break;}if (nums[second] + nums[third] == target) {List<Integer> list = new ArrayList<Integer>();list.add(nums[first]);list.add(nums[second]);list.add(nums[third]);ans.add(list);}}}return ans;}
}

相关文章:

  • windows电脑网络重置后wifi列表消失怎么办?
  • 2024攻防演练:亚信安全新一代WAF,关键时刻守护先锋
  • SpringBoot中整合ONLYOFFICE在线编辑
  • 使用Llama3/Qwen2等开源大模型,部署团队私有化Code Copilot和使用教程
  • 在线JSON可视化工具--改进
  • Java并发编程知识整理笔记
  • 用html+css设计一个列表清单小卡片
  • 如何在Java中实现PDF生成
  • SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断
  • GeoServer改造Springboot源码十(样式管理设计)
  • AR视频技术与EasyDSS流媒体视频管理平台:打造沉浸式视频体验
  • Graalvm配置文件与Feature和Substitute机制介绍
  • 学习测试2-方法
  • JUC并发编程基础(包含线程概念,状态等具体实现)
  • [图解]SysML和EA建模住宅安全系统-10-活动图 入侵者应急响应
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • java正则表式的使用
  • Laravel 实践之路: 数据库迁移与数据填充
  • Map集合、散列表、红黑树介绍
  • python 学习笔记 - Queue Pipes,进程间通讯
  • SegmentFault 2015 Top Rank
  • Selenium实战教程系列(二)---元素定位
  • vue总结
  • Vue组件定义
  • 技术发展面试
  • 讲清楚之javascript作用域
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #1015 : KMP算法
  • #微信小程序(布局、渲染层基础知识)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (26)4.7 字符函数和字符串函数
  • (C++20) consteval立即函数
  • (zhuan) 一些RL的文献(及笔记)
  • (笔试题)分解质因式
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)JAVA使用POI操作excel
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (蓝桥杯每日一题)love
  • (三)模仿学习-Action数据的模仿
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)LINQ之路
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 设置默认首页
  • .NET 事件模型教程(二)
  • .net连接oracle数据库
  • []Telit UC864E 拨号上网
  • [000-002-01].数据库调优相关学习
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序