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

代码随想录二刷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

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、704. 二分查找二、35. 搜索插入位置三、34. 在排序数组中查找元素的第一个和最后一个位置四、69. x 的平方根五、367. 有效的完全平方数六、27. 移除元素七…...

【C++奇遇记】智能的函数探幽

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集 数据库专栏 初阶数据结构 &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如…...

使用wxPython和PyMuPDF在Python中显示PDF目录的实现

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

综述:计算机视觉中的图像分割

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

【动态规划基础】数字三角形(IOI1994)

题目描述 数字三角形 输入输出样例 输入样例#1&#xff1a; 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5输出样例#1&#xff1a; 30思路&#xff1a; 这题可能看到的第一眼——直接贪心然后一层一层判断呀&#xff01;&#xff01;&#xff01;不过很快又会发现&#xff0c;额___好…...

yolo源码注释2——数据集配置文件

代码基于yolov5 v6.0 目录&#xff1a; yolo源码注释1——文件结构yolo源码注释2——数据集配置文件yolo源码注释3——模型配置文件yolo源码注释4——yolo-py 数据集配置文件一般放在 data 文件夹下的 XXX.yaml 文件中&#xff0c;格式如下&#xff1a; path: # 数据集存放路…...

Java实现根据姓名生成头像(钉钉样式)

头像生成器代码如下&#xff1a; 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…...

微信小程序备案流程

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

JavaScript版本ES5/ES6及后续版本

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

解决Idea 多模块,maven项目是多层级文件夹的子项时无法加入git管理的问题

问题 多模块项目&#xff0c;引入模块无法做git管理&#xff0c;第一个项目没有git分支标志&#xff0c;也不能像其他项目一样右键出git选项。 解决方法 发现该模块是多层级的文件夹结构&#xff0c;也就是项目本身在一个文件夹下。应该是要管理该文件夹。 Settings-Versi…...

yolo源码注释4——yolo-py

代码基于yolov5 v6.0 目录&#xff1a; yolo源码注释1——文件结构yolo源码注释2——数据集配置文件yolo源码注释3——模型配置文件yolo源码注释4——yolo-py yolo.py 用于搭建 yolov5 的网络模型&#xff0c;主要包含 3 部分&#xff1a; Detect&#xff1a;Detect 层Model…...

计算机网络中速率和带宽的区别

速率&#xff0c;指的是连接在计算机网络上的主机在数字信道上传送数据的速率&#xff0c;它也称为数据率或比特率&#xff0c;单位是bps。速率往往指的是额定速率或者标称速率&#xff0c;意思也就是在非常理想的情况下才能达到的数据传送的速率&#xff0c;然而在现实生活中是…...

MySQL数据库练习

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

Redis BitMap/HyperLogLog/GEO/布隆过滤器案例

面试问题&#xff1a; 抖音电商直播&#xff0c;主播介绍的商品有评论&#xff0c;1个商品对应了1系列的评论&#xff0c;排序展现取前10条记录用户在手机App上的签到打卡信息&#xff1a;1天对应1系列用户的签到记录&#xff0c;新浪微博、钉钉打卡签到&#xff0c;来没来如何…...

POI处理excel,根据XLOOKUP发现部分公式格式不支持问题

poi4不支持XLOOKUP函数&#xff0c;但poi最新的5.2.3却已经对此函数做了支持 poi下载地址&#xff1a;Index of /dist/poi/release/bin 公式源码位置&#xff1a;org/apache/poi/ss/formula/atp/XLookupFunction.java 但是在使用此函数过程中&#xff0c;发现有些XLOOKUP函数会…...

第一次PR经历

第一次PR测试地址&#xff1a;https://github.com/firstcontributions/first-contributions说明文档&#xff1a; https://github.com/firstcontributions/first-contributions/blob/main/translations/README.zh-cn.md...

背上小书包准备面试之TypeScript篇

目录 typescript是啥&#xff1f;与javascript的区别&#xff1f; typescript数据类型&#xff1f; typescript中枚举类型&#xff1f;应用场景&#xff1f; typescript中接口的理解&#xff1f;应用场景&#xff1f; typescript中泛型的理解&#xff1f;应用场景&#xf…...

【Spring】浅谈spring为什么推荐使用构造器注入

目录 一、前言 二、常见的三种注入方式 2.1 field注入 2.2 构造器注入 2.3 setter注入 三、构造器注入的好处 四、答疑 五、总结 一、前言 ​ Spring框架对Java开发的重要性不言而喻&#xff0c;其核心特性就是IOC&#xff08;Inversion of Control&#xff0c; 控制反转&…...

在阿里云Linux服务器上部署MySQL数据库流程

阿里云百科分享在阿里云Linux服务器上部署MySQL数据库流程&#xff0c;MySQL是一个关系型数据库管理系统&#xff0c;常用于LAMP和LNMP等网站场景中。本教程介绍如何在Linux系统ECS实例上安装、配置以及远程访问MySQL数据库。 目录 背景信息 Alibaba Cloud Linux 2/3、CentO…...

实战——OPenPose讲解及代码实现

一些前提 先思考下面几个问题&#xff1b; 1、什么是姿态估计&#xff1f; 参考&#xff1a;Point Detect任务&#xff0c;识别人体指定部分的关键点&#xff1b; 2、姿态估计中的难点是什么&#xff1f; 从干扰的角度&#xff0c;人体被遮挡对检测的影响很大&#xff1b;…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

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

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

剑指offer20_链表中环的入口节点

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

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

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

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

HashMap中的put方法执行流程(流程图)

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