【算法】——双指针算法合集(力扣)
阿华代码,不是逆风,就是我疯
你们的点赞收藏是我前进最大的动力!!
希望本文内容能够帮助到你!!
目录
第一题:移动零
第二题:复写零
第三题:快乐数
第四题:盛最多水的容器
第五题:有效三角形的个数
第六题:和为s的两个数
第七题:三数之和
第八题:四数之和
第一题:移动零
283. 移动零 - 力扣(LeetCode)


class Solution {public void moveZeroes(int[] nums) {int dest = -1;int cur = 0;int tem = 0;while(cur < nums.length){if(nums[cur] != 0){dest++;tem = nums[dest] ;nums[dest] = nums[cur];nums[cur] = tem;}cur++;}}
}
第二题:复写零
1089. 复写零 - 力扣(LeetCode)


class Solution {public void duplicateZeros(int[] arr) {int cur = 0 , dest = -1 , n = arr.length;while(cur <= n){//dest位置不确定所以不能用作判断循环的条件if(arr[cur] != 0){dest++;}else{dest += 2;}if(dest >= n-1){break;}cur++;}if(dest == n){arr[n-1] = 0;dest -= 2;cur--;}//开始从后往前复写while(cur >= 0 ){if(arr[cur] != 0){arr[dest] = arr[cur];cur--;dest--;}else{arr[dest] = arr[cur];dest--;arr[dest] = arr[cur];cur--;dest--;}}}
}
第三题:快乐数
202. 快乐数 - 力扣(LeetCode)



class Solution {public static int sumResult(int n){int sum = 0;while(n != 0){//int tem = n % 10;//sum += tem * tem;sum += Math.pow(n%10,2);n = n/10;}return sum;} public boolean isHappy(int n) {int slow = n ,fast = sumResult(n);while(slow != fast){slow = sumResult(slow);fast = sumResult(sumResult(fast));}return slow == 1;}
}
第四题:盛最多水的容器
11. 盛最多水的容器 - 力扣(LeetCode)


class Solution {public int maxArea(int[] height) {int left = 0 ,right = height.length -1 , ret = 0;while(left < right){int v = Math.min(height[left],height[right]) * (right - left);ret = Math.max(ret,v);if(height[left] < height[right]){left++;}else{right--;}}return ret;}
}
第五题:有效三角形的个数
611. 有效三角形的个数 - 力扣(LeetCode)


class Solution {public int triangleNumber(int[] nums) {int end = nums.length-1;Arrays.sort(nums);int count = 0;for( ; end >= 2 ; end--){int right = end-1;int left = 0;while(left < right){int tem = nums[left] + nums[right];if(tem > nums[end]){count += right - left;right--;}else{left++;}} } return count;}
}
第六题:和为s的两个数
LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode)


class Solution6 {public int[] twoSum(int[] price, int target) {int n = price.length;int left = 0 , right = n-1;int[] car = {-1,-1};while(left < right){int result = sum(price[left],price[right]);if(result < target){left++;}else if(result > target){right--;}else{car[0] = price[left];car[1] = price[right];return car;}}return car;}public int sum(int a , int b){int sum = a + b;return sum;}
}
第七题:三数之和
15. 三数之和 - 力扣(LeetCode)




class Solution {public List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);int n = nums.length;List<List<Integer>> ret = new ArrayList<>();for(int i = 0 ; i < n ;){if(nums[i] > 0){break;}int left = i+1 , right = n-1 ,target = -nums[i];while(left < right){int sum = sum(nums[left] , nums[right]);if(sum > target){right--;}else if(sum < target){left++; }else{ret.add(Arrays.asList(nums[left] , nums[right] , nums[i]));left++;right--;while(left < right && nums[left] == nums[left - 1]){left++;}while(left < right && nums[right] == nums[right + 1]){right--;}}}i++;while(i < n && nums[i] == nums[i-1]){i++;}}return ret;}public int sum(int a , int b){return a+b;}
}
第八题:四数之和
18. 四数之和 - 力扣(LeetCode)
强烈建议先把三数之和看完



class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {List<List<Integer>> list = new ArrayList();Arrays.sort(nums);int n = nums.length;for(int i = 0 ; i < n ; ){//第一层循环遍历固定a遍历数组int a = nums[i];for(int j = i+1 ; j < n ; ){int b = nums[j] , left = j+1 ,right = n-1;long tem = (long)target - a - b;while(left < right){long sum = sum(nums[left],nums[right]);if(sum > tem){right--;}else if(sum < tem){left++;}else{list.add(Arrays.asList(a,b,nums[left],nums[right]));left++;right--;while(left < right && nums[left] == nums[left-1]){left++;}while(right > left && nums[right] == nums[right+1]){right--;}}}j++;while(j < n-2 && nums[j] == nums[j-1]){j++;}}i++;while(i < n-1 && nums[i] == nums[i-1]){i++;}}return list;}public int sum(int a , int b){return a+b;}
}
相关文章:
【算法】——双指针算法合集(力扣)
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 第一题:移动零 第二题:复写零 第三题:快乐数 第四题:…...
小猿口算自动PK脚本
大家好,我是小黄。 近期,众多大学生炸鱼小猿口算APP,把一众小学生都快虐哭了,小黄听闻后,也跃跃欲试。对此小黄也参考网上的资料写了一个自动Pk的脚步。 首先大家需要安装一个pytorch环境过程中,如果小伙伴对此不熟悉的…...
蓝桥杯备赛(c/c++)
排序 9. 实现选择排序 10. 实现插入排序 11. 实现快速排序 12. 实现归并排序 13. 实现基数排序 14. 合并排序数组...
LLM大模型预测耗时的粗略估计以及sft和continue pre-train的区别
目录 预训练(Pretraining)与微调(SFT, Supervised Fine-Tuning)的区别 训练方式 数据组成 特殊标记(Special Tokens) Prompt处理 Session数据处理 训练目的 小结 LLM大模型预测耗时的粗略估计 1. …...
go和python打包项目对比
go源码 package mainimport ("fmt" )func main() {fmt.Println(" _____ _____ _____ _____")fmt.Println(" |2 ||2 ||2 ||2 |")fmt.Println(" | ^ || & || v || o |")fmt.Println(" | …...
EmEditor传奇脚本编辑器
主程序:EmEditor.exe 目前已有功能 可以自己指定一个快捷键 实现以下功能(默认快捷键为:F1) 以下全功能 都是鼠标所在行 按快捷键 (默认快捷键:F1) 1.在Merchant.txt中 一键打开NPC 没有…...
基于JAVA+SpringBoot+Vue的实习管理系统
基于JAVASpringBootVue的实习管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈喽兄…...
Python自定义异常类:实际应用示例之最佳实践
Python自定义异常类:实际应用示例之最佳实践 前言 在软件开发中,合理处理异常是保证程序稳定性的重要环节。虽然 Python 内置了丰富的异常类型,但在处理复杂业务逻辑时,自定义异常类能够使代码更加清晰且具备可扩展性。 本文将…...
创新设计大师项骅:用卓越才华打造医疗科技新未来
项骅,这位在设计界声名鹊起的才俊,正准备在其璀璨的职业生涯中开启一个激动人心的新篇章。近日,他宣布即将进军医疗科技领域,这一决定在设计圈和医疗界引起了广泛关注。项骅计划以UX设计师的身份,致力于改善医疗服务的用户体验。谈到这个新挑战,他显得兴致勃勃:"我期待将我…...
云计算第四阶段 CLOUD2周目 01-03
国庆假期前,给小伙伴们更行完了云计算CLOUD第一周目的内容,现在为大家更行云计算CLOUD二周目内容,内容涉及K8S组件的添加与使用,K8S集群的搭建。最重要的主体还是资源文件的编写。 (*^▽^*) 环境准备: 主机清单 主机…...
Linux搭建Hadoop集群(详细步骤)
前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 说白了就是实现一个任务可以在多个电脑上计算的过程。 一:准备工具 1.1 VMware 1.2L…...
MongoDB中如何实现相似度查询
在 MongoDB 中,进行相似度查询通常涉及文本搜索或基于特定字段的相似度计算。以下是几种常见的方法: 1. 使用文本索引和文本搜索 MongoDB 提供了文本索引功能,可以对字符串字段进行全文搜索。你可以使用 $text 操作符来执行文本搜索查询。 …...
F开头的词根词缀:ful
60.-ful (1)表形容词,“有…的” grateful a 感激的(grate感激) rueful a 后悔的(rue悔恨) willful a 任性的(will意志…任意办事) tactful a 圆滑的(tact手腕…...
【python开发笔记】-- python装饰器
装饰器: 不修改被装饰对象的源代码,也不修改调用方式的前提下,给被装饰对象添加新的功能 原则:开放封闭原则 开放:对扩展功能(增加功能开放),扩展功能的意思是在源代码不做任何改变…...
WEB攻防-python考点CTF与CMS-SSTI模板注入PYC反编译
知识点: 1、PYC(python编译后的文件)文件反编译; 2、Python-Web-SSTI; 3、SSTI模板注入利用分析; (Server-Side Template Injection) SSTI 就是服务器端模板注入 当前使用的一…...
Open3D实现点云数据的序列化与网络传输
转载自个人博客:Open3D实现点云数据的序列化与网络传输 在处理点云数据的时候,有时候需要实现点云数据的远程传输。当然可以利用传输文件的方法直接把点云数据序列化成数据流进行传输,但Open3D源码在实现RPC功能时就提供了一套序列化及传输的…...
【C++11】右值引用
前言: 在C11中引入的右值引用(rvalue references)是现代C的一个重要特性,它允许开发者以更高效的方式处理临时对象(右值),避免不必要的拷贝,提升性能。右值引用通常与C11的**移动语义…...
CSS元素显示类型
display 属性是 CSS 中最重要的属性之一,主要用来控制元素的布局,通过 display 属性您可以设置元素是否显示以及如何显示。 根据元素类型的不同,每个元素都有一个默认的 display 属性值,例如<div>默认的 display 属性值为 …...
Flink 介绍(特性、概念、故障容错、运维部署、应用场景)
概述 特性 概念 数据流 状态 时间 savepoint 故障容错 运维部署 部署应用到任意地方 Flink能够更方便地升级、迁移、暂停、恢复应用服务 监控和控制应用服务 运行任意规模应用 应用场景 事件驱动型应用 什么是事件驱动型应用? 事件驱动型应用的优势 Flink如何…...
Python+Flask接口判断身份证省份、生日、性别、有效性验证+docker部署+Nginx代理运行
这里写目录标题 一、接口样式二、部署流程2.1 镜像打包2.1.1 准备工作2.1.2 build打包2.1.3 dokcer部署运行2.1.4 Nginx代理 三、代码及文件3.1 index.py3.2 areaCodes.json3.3 Dockerfile 一、接口样式 https://blog.henryplus.cn/idcardApi/idCard/query?idcard{idcard} 二、…...
番茄小说下载器:打造个人数字书库的终极解决方案
番茄小说下载器:打造个人数字书库的终极解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代,你是否曾因网络不稳定而中断阅读?是否想…...
【计算机毕业设计】基于Springboot的工作流程管理系统设计与实现+万字文档
博主介绍:✌全网粉丝3W,csdn特邀作者、CSDN新星计划导师、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、…...
2026降AI率工具红黑榜:降AIGC工具怎么选?照着用就行!
2026年论文降AI率工具竞争激烈,千笔AI、ThouPen、豆包凭借精准适配国内高校AI率检测规范成为红榜首选。黑榜需警惕低质免费工具、无正规检测对接、改写痕迹生硬的产品。选择时应综合考量(降AI效果 - 学术合规性 - 使用成本)三维模型ÿ…...
UVM验证效率提升:利用仿真器保存恢复机制消除冗余配置周期
1. 验证环境中的冗余周期之痛:一个普遍存在的效率瓶颈在芯片验证领域,尤其是使用UVM(Universal Verification Methodology)构建的复杂验证环境中,我们常常会面临一个看似不起眼、实则消耗巨大的问题:冗余的…...
智能视觉瞄准系统:基于YOLOv8的高效游戏辅助解决方案
智能视觉瞄准系统:基于YOLOv8的高效游戏辅助解决方案 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 RookieAI_yolov8是一个基于先进视…...
React Google Maps自定义地图控件开发:扩展原生控件的完整指南
React Google Maps自定义地图控件开发:扩展原生控件的完整指南 【免费下载链接】react-google-maps React components and hooks for the Google Maps JavaScript API 项目地址: https://gitcode.com/gh_mirrors/rea/react-google-maps 你是否想让你的Google…...
Codex SQL迁移终极指南:数据库架构变更的自动化革命
Codex SQL迁移终极指南:数据库架构变更的自动化革命 在当今快速迭代的软件开发环境中,数据库架构变更是每个开发团队都必须面对的挑战。传统的手动SQL迁移过程不仅耗时耗力,还容易出错。Codex作为一款革命性的聊天驱动开发工具,通…...
2025_NIPS_TradeMaster: A Holistic Quantitative Trading Platform Empowered by Reinforcement Learning
TradeMaster 论文总结与核心内容翻译 一、文章主要内容 TradeMaster 是一款面向强化学习量化交易(RLFT)的全栈开源平台,旨在解决 RL 技术在实际金融市场部署中面临的工程实现难、基准对比难、易用性差三大核心挑战。文章围绕该平台展开全面阐述,核心内容包括: 1. 平台定…...
M9A:重返未来1999终极解放双手指南 - 智能助手让你的游戏体验更轻松
M9A:重返未来1999终极解放双手指南 - 智能助手让你的游戏体验更轻松 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A 你是否曾经为《重返未来:1999》的日…...
按键精灵PC版和手机版到底怎么选?一篇讲清四大版本区别与核心开发流程
按键精灵四大版本深度解析:从需求匹配到高效开发的完整指南 在自动化工具领域,按键精灵凭借其跨平台支持和易用性,成为许多用户的首选。但面对官网提供的四个不同版本——电脑版、手机助手、安卓版和IOS版,不少新手用户会感到困惑…...

