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

leetcode-三数之和

视频:https://www.bilibili.com/video/BV1bP411c7oJ/?spm_id_from=333.788&vd_source=dd84879fcf1be72f360461b01ecab0d6

从两数之和开始,排序后的两数之和,利用好升序的性质,可以将时间复杂度从on2降到on;
在这里插入图片描述

class Solution {public int[] twoSum(int[] numbers, int target) {//暴力没有利用好数组已经排好序的特性int i=0,j=numbers.length-1;while(i<j){//优化后 最小+最大 花了o1时间得到onint sum=numbers[i]+numbers[j]; //相加if(sum==target){return new int[]{i+1,j+1}; //直到找到答案}else if(sum<target){//小于 i++;i++;}else{//大于J--;j--;}}return null;}
}

//首先个数组排序 三数之和本质和两数之和是一样的;

class Solution {public List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);//i j kint n = nums.length;int j = 0;int k = 0;List<List<Integer>> ans = new ArrayList<>();if (n == 3) {if (nums[0] + nums[1] + nums[2] == 0) {List<Integer> list = new ArrayList<Integer>();list.add(nums[0]);list.add(nums[1]);list.add(nums[2]);ans.add(list);}}for (int i = 0; i < n - 3; i++) {if (i > 0 && nums[i] == nums[i - 1]) {continue;}if (nums[i] + nums[i + 1] + nums[i + 2] > 0) {//如果现在都大于0了 直接break;break;}j = i + 1; k = n - 1;while (j < k) {int s = nums[i] + nums[j] + nums[k]; //三个数字之和if (s > 0) {k = k - 1;} else if (s < 0) {j = j + 1;} else {List<Integer> list = new ArrayList<Integer>();list.add(nums[i]);list.add(nums[j]);list.add(nums[k]);ans.add(list); //找到一个符合的//因为是不能重复的,所以此时还需要移动 j和k的值j += 1; while (j < k && nums[j] == nums[j - 1]) j++;k -= 1;while (j < k && nums[k] == nums[k + 1]) k--;}}}return ans;}
}
http://www.lryc.cn/news/401315.html

相关文章:

  • opencv—常用函数学习_“干货“_总
  • Spring Boot项目的控制器貌似只能get不能post问题
  • 最新版智能修图-中文luminar ai 1.55(13797) 和 neo1.20,支持m芯片和intel芯片(绝对可用)
  • Open3D 最小二乘法拟合点云平面
  • 【Django+Vue3 线上教育平台项目实战】登录功能模块之短信登录与钉钉三方登录
  • 关于HBase、Phoenix、Flume、Maxwell 和 Flink
  • centos7停止维护,可替代的操作系统
  • andon系统在电力设备工管理中起到那些作用与价值
  • 消息队列-RabbitMQ
  • Elasticsearch(ES)集群监控
  • 图像处理:使用 OpenCV-Python 卡通化你的图像(2)
  • 淘宝扭蛋机小程序:旋转惊喜,开启购物新篇章!
  • JAVA零基础小白自学日志——第十七天
  • electron中app.whenReady()和app.on(‘ready‘)的区别
  • 技术速递|Let’s Learn .NET Aspire – 开始您的云原生之旅!
  • JSONNode树形解析或流式解析
  • 自制迷宫游戏 c++
  • 基于复旦微JFMQL100TAI的全国产化FPGA+AI人工智能异构计算平台,兼容XC7Z045-2FFG900I
  • 【数学建模】技术革新——Lingo的使用超详解
  • LLM-阿里 DashVector + langchain self-querying retriever 优化 RAG 实践【Query 优化】
  • 【python】PyQt5的窗口界面的各种交互逻辑实现,轻松掌控图形化界面程序
  • DockerCompose介绍,安装,使用
  • N叉树的前序遍历
  • Linux C++ 054-设计模式之外观模式
  • Linux - 冯-诺依曼体系结构、初始操作系统
  • 成功适配!极验设备指纹HarmonyOS 鸿蒙版官方下载
  • 【C++】字符串学习 知识点+代码记录
  • 尝试理解docker网络通信逻辑
  • 数据仓库哈哈
  • K最近邻(K-Nearest Neighbors, KNN)