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

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...