力扣算法的方法(1.二分法,2.双指针思路,3.滑动窗口)

20240724

  • 1.二分法
    • 1.1 给定的数组区间为左闭右闭
    • 1.2 给定的数组区间为左闭右开
  • 2. 27题移除元素(双指针思路)
  • 3. 977. 有序数组的平方(双指针)
  • 4 长度最小的子数组(滑动窗口)

一、算法刷题开始跟老师了!!来源于代码随想录!!!

1.二分法

1.1 给定的数组区间为左闭右闭

int num[]  int target  判断target的值是否在num中,在返回索引,不在返回-1

当时左闭右闭的时候,我们的区间判断就为:

left=0;
right=num.size-1;
middle=(left+right)/2
while(left<=right){//这里是因为比如给定的数组为int[2,2],right=2,left=2,是可以相等的
if(nums[middle]>target){//证明在middle的左边,又因为nums是左闭右闭合,可以等于middle,middle
//判断过了,所以-1
right=middle-1;
}else if(nums[middle]<target){//证明在middle的右边边,又因为是左闭右闭合,可以等于middle
//又因为middle判断过了,所以+1
left+=1}else{
return middle;
}
}

1.2 给定的数组区间为左闭右开

int num[]  int target  判断target的值是否在num中,在返回索引,不在返回-1

当时左闭右闭的时候,我们的区间判断就为:

left=0;
right=num.size;//因为right不包含右边界,所以他不用-1
middle=(left+right)/2
while(left<right){//这里是因为比如给定的数组为int[2,2),left=2,right<2的,所以不能相等。
if(nums[middle]>target){//证明在middle的左边,又因为nums是左闭右开,之前不包含middle,//middle没判断,所以right=middle;
right=middle;
}else if(nums[middle]<target){//证明在middle的右边边,又因为是左闭右闭合,可以等于middle
//又因为middle判断过了,所以+1
left+=1}else{
return middle;
}
}

2. 27题移除元素(双指针思路)

返回删除后的数组长度:

  int test(int num[],int a) {int slow=0;//定义一个慢指针,用来记录fast传入的值for(int fast=0;fast<num.length;++fast){//定义快指针用来去寻找目标aif(num[fast]!=a){num[slow]=num[fast];//也可以直接num[slow++]=num[fast]slow++;}}return slow;//因为如果不等于a,进行删除操作的话,slow是不+的,所以数组的长度就为slow}

3. 977. 有序数组的平方(双指针)

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

class Solution {public int[] sortedSquares(int[] nums) {int[] result = new int[nums.length];//定义一个新的数组,用来存储平方后的数组int k=nums.length-1;//得到一个数组最大的索引for(int i=0,j=k;i<=j;){//双指针,i,j。对于i和j的+,-是需要进行判断的,所以写在下面if(nums[i]*nums[i]>nums[j]*nums[j]){//用来判断,第一个和最后一个哪个的平方大(因为又负数)result[k]=nums[i]*nums[i];//将大的赋值给result[]最后一位,这样就可以得到一个从小到大的数组了k--;i++;}else{result[k]=nums[j]*nums[j];k--;j--;}}return result;}
}

4 长度最小的子数组(滑动窗口)

class Solution {// 滑动窗口public int minSubArrayLen(int s, int[] nums) {int left = 0;int sum = 0;int result = Integer.MAX_VALUE;for (int right = 0; right < nums.length; right++) {sum += nums[right];while (sum >= s) {result = Math.min(result, right - left + 1);sum -= nums[left++];}}return result == Integer.MAX_VALUE ? 0 : result;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线下陪玩平台搭建系统小程序线下陪玩到家软件系统搭建开发

在当今的陪玩行业中&#xff0c;一种被称为“豺狼虎豹”的现象正在悄然兴起&#xff0c;那就是陪玩师接私单的行为。因为它不仅影响了平台的正常运营&#xff0c;还可能导致高质量客户的流失。然而&#xff0c;这个这种行为对于平台来说无疑是一种巨大的挑战&#xff0c;问题并…

vue3.0学习笔记(三)——计算属性、监听器、ref属性、组件通信

1. computed 函数 定义计算属性&#xff1a; computed 函数&#xff0c;是用来定义计算属性的&#xff0c;计算属性不能修改。 计算属性应该是只读的&#xff0c;特殊情况可以配置 get set 核心步骤&#xff1a; 导入 computed 函数 执行函数 在回调参数中 return 基于响应…

opencascade AIS_Line源码学习

前言 AIS_Line 是 OpenCASCADE 库中的一个类&#xff0c;用于表示和操作三维直线。它可以通过几何线&#xff08;Geom_Line&#xff09;或者两个几何点&#xff08;Geom_Point&#xff09;来初始化。 方法 1 //! 初始化直线 aLine。 Standard_EXPORT AIS_Line(const Handl…

JavaScript(14)——DOM

Web API 作用&#xff1a;就是使用JS去操作html和浏览器 分类&#xff1a;DOM&#xff08;文档对象模型&#xff09;、BOM&#xff08;浏览器对象模型&#xff09; DOM DOM是用来呈现以及与任意HTML或XML文档交互的API&#xff0c;简单来说就是操作网页的内容。 DOM树 将H…

计算机视觉与图像分类:技术原理、应用与发展前景

引言 随着科技的不断进步&#xff0c;计算机视觉逐渐成为了人工智能领域的重要分支之一。计算机视觉旨在让计算机具备“看懂”图像和视频的能力&#xff0c;从而理解和分析视觉信息。作为计算机视觉中的一个关键任务&#xff0c;图像分类涉及将输入的图像归类到预定义的类别中&…

[RK3588][Android12] Android->OTA包超过4个G导致打包失败

测试平台 Platform: RK3588 OS: Android12 问题说明&#xff1a; 有的客户需要往系统中内置大量apk&#xff0c;这样就导致最终打包的OTA包超过4个G&#xff0c;从而导致打包OTA的时候报错&#xff1a;Zipfile size would require ZIP64 extensions 解决方法&#xff1a; 可能…

解决python bug(关于Paddle分布式训练):Exit with signal X

解决python bug[关于Paddle分布式训练]&#xff1a;Exit with signal X 多卡训练(需根据自己需求进行更改)单卡训练(需根据自己需求进行更改) 本人在通过Paddle实现多目标检测跟踪时遇到了一个小bug。 Exit with signal X 后来通过查询相关资料得知&#xff0c;引发这个bug的原…

学习记录day18——数据结构 算法

算法的相关概念 程序 数据结构 算法 算法是程序设计的灵魂&#xff0c;结构式程序设计的肉体 算法&#xff1a;计算机解决问题的方法护额步骤 算法的特性 1、确定性&#xff1a;算法中每一条语句都有确定的含义&#xff0c;不能模棱两可 2、有穷性&#xff1a;程序执行一…

11 Vue 项目插件

UI 插件 Element-UI – Vue2 PC端组件库Element Plus – Vue3 PC端组件库Vant 2 – Vue2移动端组件库Vant 3 – Vue3 移动端组件库vue-quill-editorvue – Vue富文本编辑器nprogress – 进度条插件vue-teble-with-tree-gridvue – 表格树型展示插件screenfull – 页面全屏插件e…

35_YOLOX网络详解

1.1 简介 YOLOX是YOLO系列&#xff08;You Only Look Once&#xff09;目标检测模型的一个最新变种&#xff0c;由阿里云团队和旷视科技在2021年提出。YOLO系列以其快速、准确的目标检测能力而闻名&#xff0c;而YOLOX在此基础上进行了多方面的改进和优化&#xff0c;旨在提供…

机器学习数学基础(2)--最大似然函数

声明&#xff1a;本文章是根据网上资料&#xff0c;加上自己整理和理解而成&#xff0c;仅为记录自己学习的点点滴滴。可能有错误&#xff0c;欢迎大家指正。 在机器学习和统计学领域中&#xff0c;似然函数&#xff08;Likelihood Function&#xff09;是一个至关重要的概念。…

05 ES6中的Set类型

ES6 中引入的 Set 对象是一种集合数据结构&#xff0c;它存储不重复的值&#xff0c;类似于数组&#xff0c;但数组可以包含重复的元素&#xff0c;而 Set 不会。以下是 Set 对象的一些关键特性和常用方法&#xff1a; 特性 唯一性&#xff1a;Set 中的每个值必须是唯一的&am…

AIGC的神秘面纱——利用人工智能生成内容改变我们的生活

近年来&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;正在迅速改变我们与数字世界互动的方式。从自动写作到图像生成&#xff0c;AIGC正逐渐走进我们的日常生活。它不仅提高了效率&#xff0c;还为创意和商业活动带来了新的可能性。让我们一起来探索AIGC的世界&…

解读 IP 地址定位

你是否好奇众多平台推出的 IP 归属地功能是如何确定的位置&#xff1f;其实这些说起来并不难。接下来让我来给你们说一下其中的“奥秘”吧~ 一、IP 定位背后的原理 首先&#xff0c;从“IP 地址”开始。因为每个联网设备在接入网络时都会被分配一个独一无二的 IP 地址。根据这…

iptables规则设置

宿主机iptables策略实施 #基础策略 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT && \ iptables -A INPUT -p icmp -j ACCEPT && \ iptables -A INPUT -p udp -j ACCEPT && \ iptables -A INPUT -i lo -j ACCEPT #允许某个IP地址…

通信原理思科实验三:无线局域网实验

实验三 无线局域网实验 一&#xff1a;无线局域网基础服务集 实验步骤&#xff1a; 进入物理工作区&#xff0c;导航选择 城市家园; 选择设备 AP0&#xff0c;并分别选择Laptop0、Laptop1放在APO范围外区域 修改笔记本的网卡&#xff0c;从以太网卡切换到无线网卡WPC300N 切…

3.多租户调研1

https://gitee.com/xiaoqiangBUG/hello-ruoyi-cloud.git 1.mybatis plus 的插件 TenantLineInnerInterceptor 是 MyBatis Plus 框架中的一个拦截器&#xff0c;它用于实现多租户系统的数据隔离。在多租户应用中&#xff0c;不同的租户应该只能访问到自己的数据&#xff0c;而…

TCP网络socket编程(面向连接)

Tcp面向链接、面向字节流和文件的读写非常类似&#xff08;&#xff09;&#xff1a;客户端创建套接字主动建立连接&#xff0c;服务器监听套接字一直等待连接的到来&#xff0c;监听到一个&#xff0c;就创建一个新的套接字用于IO 服务器&#xff1a; 创建套接字&#xff1a…

【数据结构】单链表面试题(Java + 力扣 + 详解)

&#x1f387;&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳&#xff0c;欢迎大佬指点&#xff01; 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

Python—面向过程编程,详细讲解(类和实例,初始化函数,类中封装数据与操作)

1.类和实例 类&#xff1a;类别 实例&#xff08;对象&#xff09;&#xff1a;类型塑造出来的某一个具体的内容 isinstance(对象&#xff0c;类) 返回一个对象是否是一个类的实例 # 声明一个整数类的实例10 a int(10) # a 10 print(type(a), isinstance(a, int)) a flo…