【算法刷题day1】Leetcode:704. 二分查找、27. 移除元素

文章目录

    • Leetcode 704. 二分查找
      • 解题思路
      • 代码
      • 总结
    • Leetcode 27. 移除元素
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 704. 二分查找

题目:704. 二分查找

解题思路

1.左闭右闭区间的搜索,循环条件为left <= right。
在这里插入图片描述

2.左闭右开区间的搜索,循环条件为left < right。
在这里插入图片描述

代码

//1.左闭右闭
class Solution {
	public int search(int[] nums, int target) {
		int left = 0, right = nums.length - 1;
		while (left <= right){
			int mid = left + (right - left) / 2;
			if (nums[mid] > target){
				right = mid - 1;
			}else if (nums[mid] < target){
				left = mid + 1;
			}else{
				return mid;
			}
		}
		return -1;

	}
}
//2.左闭右开
class Solution {
	public int search(int[] nums, int target) {
		int left = 0, right = nums.length;
		while (left < right){
			int mid = left + (right - left) / 2;
			if (nums[mid] > target){
				right = mid;
			}else if (nums[mid] < target){
				left = mid + 1;
			}else{
				return mid;
			}
		}
		return -1;

	}
}

总结

暂无

Leetcode 27. 移除元素

题目:27. 移除元素

解题思路

双指针,快指针找到第一个不是val的后,两个指针一起走一步

代码

class Solution {
    public int removeElement(int[] nums, int val) {
        int left = 0, right = 0;
        while (right < nums.length){
            while (right < nums.length && nums[right] == val){
                right++;
            }
            if (right >= nums.length)
                break;
            nums[left++] = nums[right++];
        }
        return left;
    }
}

总结

代码有一定冗余,karl哥的代码更精炼

class Solution {
    public int removeElement(int[] nums, int val) {
        int slowIdx = 0;
        for (int fastIdx = 0; fastIdx < nums.length; fastIdx++){
            if (val != nums[fastIdx]){
                nums[slowIdx++] = nums[fastIdx];
            }
        }
        return slowIdx;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++一维数组练习oj(3)

为什么C的一维数组练习要出要做那么多的题目&#xff1f;因为我们是竞赛学生&#xff01;想要将每个知识点灵活运用的话就必须刷大量的题目来锻炼思维。 我使用的是jsswoj.com这个刷题网站&#xff0c;当然要钱... C一维数组练习oj(2)-CSDN博客这是上一次的题目讲解 这道题有…

Unity学习笔记 6.2D换帧动画

下载源码 UnityPackage 目录 1.导入图片 1.1. 图片的叠放顺序 2.图片切片 3.用动画控制器让马&#x1f40e;动起来 1.导入图片 直接拖拽进场景 检查 Texture Type&#xff08;纹理类型&#xff09;是否为 Sprite 创建2D精灵对象&#xff0c;拖拽图片到Sprite&#xff08…

【C++】关联式容器——map和set

1 关联式容器 STL中我们常用的部分容器&#xff0c;比如&#xff1a;vector、list、deque、forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身。 那什么是关联式容器呢&#xff1f;它与序…

蓝桥杯G431RBT6——定时器中使用led冲突以及led与lcd冲突等一系列问题

本文是解决 同时在 定时器中点灯 与 LCD屏幕显示 冲突异常的问题 我们大家都知道&#xff0c;G431RBT6开发板上led与lcd是冲突的&#xff0c;所以在lcd.c文件中的这三个函数中 void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue) void LCD_WriteRAM_Prepare(void) void LCD_Wr…

移动0【双指针】

移动零 cur每次走一步&#xff0c;dest走不走取决于cur有没有找到非0值&#xff0c;一旦找打非0值&#xff0c;交换。不是非0值&#xff0c;dest不动。》【非零&#xff0c;dest】【dest&#xff0c;0】 class Solution { public:void moveZeroes(vector<int>& num…

算法第三十二天-最长公共子序列

最长公共子序列 题目要求 解题思路 求这两个数组或者字符串的最长公共子序列问题&#xff0c;肯定要用到动态规划。 首先区分两个概念&#xff1a;子序列可以是不连续的&#xff1b;子数组&#xff08;子字符串&#xff09;是需要连续的&#xff1b;另外&#xff0c;动态规划…

制冷设备之转子式压缩机

滚动转子式压缩机又称活塞式压缩机&#xff0c;属于回转式压缩机。 转子压缩机结构 滚动转子式压缩机与往复活塞式压缩机相比&#xff0c;具有下列特点 1.零部件少&#xff0c;尺寸紧凑&#xff0c;结构简单&#xff0c;重量轻易损零件少&#xff0c;运行可靠&#xff1b; 2.…

C语言动态内存的管理

前言 本篇博客就来探讨一下动态内存&#xff0c;说到内存&#xff0c;我们以前开辟空间大小都是固定的&#xff0c;不能调整这个空间大小&#xff0c;于是就有动态内存&#xff0c;可以让我们自己选择开辟多少空间&#xff0c;更加方便&#xff0c;让我们一起来看看动态内存的有…

Vue3 上手笔记

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…

Linux的一些基本指令

​​​​​​​ 目录 前言&#xff1a; 1.以指令的形式登录 2.ls指令 语法&#xff1a; 功能&#xff1a; 常用选项&#xff1a; 3.pwd指令 4.cd指令 4.1 绝对路径与相对路径 4.2 cd .与cd ..&#xff08;注意cd后先空格&#xff0c;然后两个点是连一起的&#xff0…

Git bash获取ssh key

目录 1、获取密钥 2、查看密钥 3、在vs中向GitHub推送代码 4、重新向GitHub推送修改过的代码 1、获取密钥 指令&#xff1a;ssh-keygen -t rsa -C "邮箱地址" 连续按三次回车&#xff0c;直到出现类似以下界面&#xff1a; 2、查看密钥 路径&#xff1a;C:\U…

复旦EMBA参访娃哈哈:交流企业创新转型、家族企业管理之道

早在多年前&#xff0c;复旦EMBA同学曾参访娃哈哈集团&#xff0c;与宗庆后先生对话&#xff0c;就国内企业创新转型、家族企业管理之道、“企二代”的成长、企业社会责任等热点问题向其探讨交流。通过面对面的实地企业参访和行业领袖的深入交流&#xff0c;亲身触摸中国科创的…

车辆信息查询API:高效获取车牌号对应车辆的实时信息

随着汽车的普及和交通管理的加强&#xff0c;对于车辆信息的查询需求也越来越大。车辆信息查询API就是为了满足这一需求而开发的&#xff0c;它可以通过输入车牌号&#xff0c;快速获取车辆的相关信息&#xff0c;包括初始登记日期、上险日期、保险到期时间、车架号、品牌等。但…

判断隔离纸到钢壳边缘的距离,燕尾是否超标

方法如下: 方法1:通过找圆工具上的点求解隔离纸边缘点-钢壳边缘点的距离。 #region namespace imports using System; using System.Collections; using System.Drawing; using System.IO; using System.Windows.Forms; using Cognex.VisionPro; using Cognex.VisionPro.To…

[项目前置]websocket协议

websocket协议介绍 WebSocket 协议是一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更简单&#xff0c;允许服务器主动向客户端推送数据。它在 2011 年成为国际标准&#xff0c;现在被所有现代浏览器支持。WebSocket 设计用于…

YOLOv8 | 网络结构 | 详细讲解YOLOv8的网络结构

⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 YOLOv5涨点专栏:http://t.csdnimg.cn/70xZa YOLOv8涨点专栏:http://t.csdnimg.cn/Cb89a YOLOv7专栏:http://t.csdnimg.cn/HaTdn 💡魔改网络、复现论文、优化创新💡 …

【No.13】蓝桥杯二分查找|整数二分|实数二分|跳石头|M次方根|分巧克力(C++)

二分查找算法 知识点 二分查找原理讲解在单调递增序列 a 中查找 x 或 x 的后继在单调递增序列 a 中查找 x 或 x 的前驱 二分查找算法讲解 枚举查找即顺序查找&#xff0c; 实现原理是逐个比较数组 a[0:n-1] 中的元素&#xff0c;直到找到元素 x 或搜索整个数组后确定 x 不在…

面试笔记——Redis(双写一致、持久化)

双写一致 双写一致性&#xff1a; 当修改了数据库中的数据&#xff0c;也要更新缓存的数据&#xff0c;使缓存和数据库中的数据保持一致。 相关问题&#xff1a;使用Redis作为缓存&#xff0c;mysql的数据如何与Redis进行同步&#xff1f;——双写一致性问题 回答时&#xff0…

数字范围按位与

链接&#xff1a; 201. 数字范围按位与 - 力扣&#xff08;LeetCode&#xff09; 这个题目看起来很难&#xff0c;但是 按位与 的特点是 如果全是1 为 1 其余全为 0 然后这道题其实就是在找最长公共前缀&#xff08;为啥不说后缀&#xff0c;观察可知&#xff0c;后缀那部分…

【Mysql】硬盘性能压测(Sysbench工具)

1、IOPS和吞吐量介绍 IOPS&#xff08;每秒输入/输出操作数&#xff09;&#xff1a;是衡量存储设备每秒能够执行的输入/输出操作的数量。对于数据库等需要频繁读写的应用程序而言&#xff0c;IOPS 是一个关键的性能指标。更高的 IOPS 意味着存储设备能够处理更多的读写请求&am…