代码随想录二刷day01
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、704. 二分查找
- 二、35. 搜索插入位置
- 三、34. 在排序数组中查找元素的第一个和最后一个位置
- 四、69. x 的平方根
- 五、367. 有效的完全平方数
- 六、27. 移除元素
- 七、26. 删除有序数组中的重复项
- 八、283. 移动零
- 九、844. 比较含退格的字符串
- 十、977. 有序数组的平方
前言
使用左闭右闭区间的二分查找时, 最后low一定是被查找元素的插入位置,若查找的数带小数,low-1, 便是最终结果
一、704. 二分查找
1、左闭右闭
class Solution {public int search(int[] nums, int target) {int low = 0, high = nums.length-1, mid = 0;while(low <= high){mid = (low + high)/2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){low = mid + 1;}else{high = mid - 1;}}return -1;}
}
2、左闭右开
class Solution {public int search(int[] nums, int target) {int low = 0, high = nums.length, mid = 0;while(low < high){mid = (low + high)/2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){low = mid + 1;}else{high = mid;}}return -1;}
}
二、35. 搜索插入位置
class Solution {public int searchInsert(int[] nums, int target) {int low = 0, high = nums.length, mid;while(low < high){mid = (low + high)/2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){low = mid + 1;}else{high = mid;}}return low;}
}
三、34. 在排序数组中查找元素的第一个和最后一个位置
class Solution {public int[] searchRange(int[] nums, int target) {int low = 0, high = nums.length, mid; int[] res = {-1, -1};while(low < high){mid = (low + high)/2;if(nums[mid] == target){res[0] = res[1] = mid;while(res[0]-1 >= 0 && nums[res[0] - 1] == target){res[0] -= 1;}while(res[1] + 1 < nums.length && nums[res[1] + 1] == target){res[1] += 1;}return res;}else if(nums[mid] < target){low = mid + 1;}else{high = mid;}}return res;}
}
四、69. x 的平方根
class Solution {public int mySqrt(int x) {int low = 0, high = x, mid;if(x == 0 || x == 1){return x;}while(low <= high){mid = (low + high)/2;if(x / mid == mid){return mid;}else if(x / mid > mid){low = mid +1;}else{high = mid -1;}}return low - 1;}
}
五、367. 有效的完全平方数
lass Solution {public boolean isPerfectSquare(int num) {int x = 1;while(num > 0){num -= x;x += 2;}return num == 0;}
}
六、27. 移除元素
class Solution {public int removeElement(int[] nums, int val) {int i = 0, j = 0;for(;i < nums.length; ){if(nums[i] != val){nums[j] = nums[i];i ++; j ++;}else{i ++;}}return j;}
}
七、26. 删除有序数组中的重复项
class Solution {public int removeDuplicates(int[] nums) {if(nums.length == 1){return 1;}int i = 1, j = 0;for(; i < nums.length; ){if(nums[i] != nums[j]){nums[++j] = nums[i++];}else{i ++;}}return j + 1;}
}
八、283. 移动零
class Solution {public void moveZeroes(int[] nums) {int i = 0, j = 0, len = nums.length;if(len == 1)return;while(i < len){if(nums[i] != 0){nums[j] = nums[i];if(i == j){i ++;}else{nums[i++] = 0;}j ++;}else{i ++;}}}
}
九、844. 比较含退格的字符串
class Solution {public boolean backspaceCompare(String s, String t) {Deque<Character> deq1 = new ArrayDeque<>();Deque<Character> deq2 = new ArrayDeque<>();char[] ch1 = s.toCharArray();char[] ch2 = t.toCharArray();for(int i = 0; i < ch1.length; i ++){if(ch1[i] != '#'){deq1.offerFirst(ch1[i]);}else if(!deq1.isEmpty()){deq1.pollFirst();}}for(int j = 0; j < ch2.length; j ++){if(ch2[j] != '#'){deq2.offerFirst(ch2[j]);}else if(!deq2.isEmpty()){deq2.pollFirst();}}while(!deq1.isEmpty() && !deq2.isEmpty()){char c1 = deq1.pollFirst();char c2 = deq2.pollFirst();if(c1 != c2){return false;}}return deq1.isEmpty() && deq2.isEmpty();}
}
十、977. 有序数组的平方
class Solution {public int[] sortedSquares(int[] nums) {Deque<Integer> deq1 = new LinkedList<>();Deque<Integer> deq2 = new LinkedList<>();for(int i = 0; i < nums.length; i ++){if(nums[i] <= 0){deq1.offerLast(nums[i] * nums[i]);}else{deq2.offerLast(nums[i] * nums[i]);}}int k = 0;while(!deq1.isEmpty() && !deq2.isEmpty()){if(deq1.peekLast() <= deq2.peekFirst()){nums[k ++] = deq1.pollLast();}else{nums[k ++] = deq2.pollFirst();}}while(!deq1.isEmpty()){nums[k ++] = deq1.pollLast();}while(!deq2.isEmpty()){nums[k ++] = deq2.pollFirst();}return nums;}
}
相关文章:
代码随想录二刷day01
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、704. 二分查找二、35. 搜索插入位置三、34. 在排序数组中查找元素的第一个和最后一个位置四、69. x 的平方根五、367. 有效的完全平方数六、27. 移除元素七…...

【C++奇遇记】智能的函数探幽
🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 数据库专栏 初阶数据结构 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如…...

使用wxPython和PyMuPDF在Python中显示PDF目录的实现
展示如何使用wxPython和PyMuPDF库在Python中选择PDF文件并将目录显示在列表框中。 简介: 在本篇教程中,我们将学习如何使用wxPython和PyMuPDF库在Python中选择PDF文件,并将其目录显示在一个列表框中。这将使用户能够方便地浏览PDF文档的目录…...

综述:计算机视觉中的图像分割
一、说明 这篇文章是关于图像分割的探索,这是解决计算机视觉问题(如对象检测、对象识别、图像编辑、医学图像分析、自动驾驶汽车等)的重要步骤之一。让我们从介绍开始。 二、图像分割介绍 图像分割是计算机视觉中的一项基本任务,涉…...

【动态规划基础】数字三角形(IOI1994)
题目描述 数字三角形 输入输出样例 输入样例#1: 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5输出样例#1: 30思路: 这题可能看到的第一眼——直接贪心然后一层一层判断呀!!!不过很快又会发现,额___好…...
yolo源码注释2——数据集配置文件
代码基于yolov5 v6.0 目录: yolo源码注释1——文件结构yolo源码注释2——数据集配置文件yolo源码注释3——模型配置文件yolo源码注释4——yolo-py 数据集配置文件一般放在 data 文件夹下的 XXX.yaml 文件中,格式如下: path: # 数据集存放路…...
Java实现根据姓名生成头像(钉钉样式)
头像生成器代码如下: package com.hua.util;import org.apache.commons.lang3.StringUtils;import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.i…...

微信小程序备案流程
微信小程序备案流程 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助请帮我…...

JavaScript版本ES5/ES6及后续版本
JavaScript简史 1995: Brendan Eich在短短10天内创建了JavaScript的第一个版本。它被称为摩卡,但已经具备了现代JavaScript的许多基本特性! 1996: 为了吸引Java开发人员,Mocha先是更改为LiveScript,然后又更改为Ja…...

解决Idea 多模块,maven项目是多层级文件夹的子项时无法加入git管理的问题
问题 多模块项目,引入模块无法做git管理,第一个项目没有git分支标志,也不能像其他项目一样右键出git选项。 解决方法 发现该模块是多层级的文件夹结构,也就是项目本身在一个文件夹下。应该是要管理该文件夹。 Settings-Versi…...
yolo源码注释4——yolo-py
代码基于yolov5 v6.0 目录: yolo源码注释1——文件结构yolo源码注释2——数据集配置文件yolo源码注释3——模型配置文件yolo源码注释4——yolo-py yolo.py 用于搭建 yolov5 的网络模型,主要包含 3 部分: Detect:Detect 层Model…...
计算机网络中速率和带宽的区别
速率,指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率或比特率,单位是bps。速率往往指的是额定速率或者标称速率,意思也就是在非常理想的情况下才能达到的数据传送的速率,然而在现实生活中是…...

MySQL数据库练习
目录 表结构 建表 插入数据 1、用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。 2、修改student 表中年龄(age)字段属性,数据类型由…...

Redis BitMap/HyperLogLog/GEO/布隆过滤器案例
面试问题: 抖音电商直播,主播介绍的商品有评论,1个商品对应了1系列的评论,排序展现取前10条记录用户在手机App上的签到打卡信息:1天对应1系列用户的签到记录,新浪微博、钉钉打卡签到,来没来如何…...

POI处理excel,根据XLOOKUP发现部分公式格式不支持问题
poi4不支持XLOOKUP函数,但poi最新的5.2.3却已经对此函数做了支持 poi下载地址:Index of /dist/poi/release/bin 公式源码位置:org/apache/poi/ss/formula/atp/XLookupFunction.java 但是在使用此函数过程中,发现有些XLOOKUP函数会…...

第一次PR经历
第一次PR测试地址:https://github.com/firstcontributions/first-contributions说明文档: https://github.com/firstcontributions/first-contributions/blob/main/translations/README.zh-cn.md...
背上小书包准备面试之TypeScript篇
目录 typescript是啥?与javascript的区别? typescript数据类型? typescript中枚举类型?应用场景? typescript中接口的理解?应用场景? typescript中泛型的理解?应用场景…...
【Spring】浅谈spring为什么推荐使用构造器注入
目录 一、前言 二、常见的三种注入方式 2.1 field注入 2.2 构造器注入 2.3 setter注入 三、构造器注入的好处 四、答疑 五、总结 一、前言 Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转&…...
在阿里云Linux服务器上部署MySQL数据库流程
阿里云百科分享在阿里云Linux服务器上部署MySQL数据库流程,MySQL是一个关系型数据库管理系统,常用于LAMP和LNMP等网站场景中。本教程介绍如何在Linux系统ECS实例上安装、配置以及远程访问MySQL数据库。 目录 背景信息 Alibaba Cloud Linux 2/3、CentO…...

实战——OPenPose讲解及代码实现
一些前提 先思考下面几个问题; 1、什么是姿态估计? 参考:Point Detect任务,识别人体指定部分的关键点; 2、姿态估计中的难点是什么? 从干扰的角度,人体被遮挡对检测的影响很大;…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...