力扣爆刷第102天之hot100五连刷96-100

力扣爆刷第102天之hot100五连刷96-100

文章目录

      • 力扣爆刷第102天之hot100五连刷96-100
      • 一、136. 只出现一次的数字
      • 二、169. 多数元素
      • 三、75. 颜色分类
      • 四、31. 下一个排列
      • 五、287. 寻找重复数

一、136. 只出现一次的数字

题目链接:https://leetcode.cn/problems/single-number/description/?envType=study-plan-v2&envId=top-100-liked
思路:本题利用数学技巧,利用异或运算,一个数与0异或运算的结果还是它自身,此外,不同异或为1,相同为0,不同数异或会有一些大小变化,再进行相同数异或会减小掉变化。

class Solution {public int singleNumber(int[] nums) {int res = 0;for(int n : nums) {res ^= n;}return res;}
}

二、169. 多数元素

题目链接:https://leetcode.cn/problems/majority-element/description/?envType=study-plan-v2&envId=top-100-liked
思路:投票算法,当前数如果重复出现则加1,出现别的数则减1,为0换下一个数。

class Solution {public int majorityElement(int[] nums) {int count = 0, res = 0;for(int n : nums) {if(count == 0) {res = n;}count += n == res ? 1 : -1;}return res;}
}

三、75. 颜色分类

题目链接:https://leetcode.cn/problems/sort-colors/description/?envType=study-plan-v2&envId=top-100-liked
思路:3个数要排序,先0和1交换排序,然后再1和2交换排序。

class Solution {public void sortColors(int[] nums) {int zero = 0;for(int i = 0; i < nums.length; i++) {if(nums[i] == 0) {int temp = nums[zero];nums[zero] = nums[i];nums[i] = temp;zero++;}}int one = zero;for(int i = zero; i < nums.length; i++) {if(nums[i] == 1) {int temp = nums[one];nums[one] = nums[i];nums[i] = temp;one++;}}}
}

四、31. 下一个排列

题目链接:https://leetcode.cn/problems/next-permutation/description/?envType=study-plan-v2&envId=top-100-liked
思路:求下一个排列,是求下一个最小的大于它的值,基本原理从下图的5, 7, 6, 4处进行寻找,寻找最小的一个大于它的数,自然要从右边开始找,找第一个凹陷处,nums[i] < nums[i+1],此时i= 5,然后再从右边找第一个大于5 的数,为6,也就是nums[j]>nums[i],此刻这个6就是最小的一个大于它的数,然后交换,交换后[i, end]为单调递减,然后翻转即可。
在这里插入图片描述

class Solution {public void nextPermutation(int[] nums) {int i = nums.length - 2;while(i >= 0 && nums[i] >= nums[i+1]) {i--;}if(i >= 0) {for(int j = nums.length-1; j >= 0; j--) {if(nums[j] > nums[i]) {swap(nums, i, j);break;}}}reverse(nums, i+1, nums.length-1);}void swap(int[] nums, int i, int j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}void reverse(int[] nums, int i, int j) {while(i < j) {swap(nums, i, j);i++;j--;}}
}

五、287. 寻找重复数

题目链接:https://leetcode.cn/problems/find-the-duplicate-number/description/?envType=study-plan-v2&envId=top-100-liked
思路:寻找重复数,给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n)。这个是题目的描述,说明最大的数作为索引,也仅仅是数组结尾,所以可以把数组元素和索引建立联系,构建逻辑上的循环数组,和链表上的循环数组一样,使用快慢指针,慢的走一步,快的走两步,相遇就是环的入口,只不过此时拿到的是数组里的数,然后再有一个从起点出发,相遇即可拿到环的入口。

class Solution {public int findDuplicate(int[] nums) {int slow = 0, fast = 0;slow = nums[slow];fast = nums[nums[fast]];while(slow != fast) {slow = nums[slow];fast = nums[nums[fast]];}int one = 0;while(one != slow) {one = nums[one];slow = nums[slow];}return one;}
}

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

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

相关文章

Python PyQt5

实现界面开发&#xff0c;与tkinter功能一致&#xff0c;网上已有详细资料&#xff0c;此处仅记录自己的代码&#xff1a; 文章目录 1. 实操1.1 main.py1.2. 窗体模块代码1.3. 页面效果 2. 参考资料2.1. PyQt5 参考资料2.2. tkinter 参考资料 3. 安装注意事项3.1. 下载3.2 Pyc…

python --- 练习题3

目录 1、猜数字游戏&#xff08;使用random模块完成&#xff09; &#xff1a;继上期题目&#xff0c;附加 2、用户登录注册案例 3、求50~150之间的质数是那些&#xff1f; 4、打印输出标准水仙花数&#xff0c;输出这些水仙花数 5、验证:任意一个大于9的整数减去它的各位…

Blender小:图片转mesh,并展UV

其实就这么一个插件&#xff1a;Image2Mesh https://github.com/kedepot/i2m-std blender加载完图片之后点这个就行 到了这一步还不行如果直接放到unity中使用的话&#xff0c;添加材质和贴图之后每一个小块都是独立的区域来展示贴图&#xff0c;所以需要展UV

使用Tesseract识别中文 并提高精度

1. 使用中文训练数据 在使用pytesseract进行中文文本识别时&#xff0c;确保安装了中文的训练数据文件。在Tesseract的安装目录下的tessdata文件夹中应包含一个名为chi_sim.traineddata&#xff08;简体中文&#xff09;或chi_tra.traineddata&#xff08;繁体中文&#xff09…

蓝牙HFP协议推荐的语音丢包补偿算法浮点实现的定点化

最近在做蓝牙的宽带语音通话。相对于蓝牙窄带语音&#xff0c;主要变化是把采样率从8k变到16k&#xff0c;以及编解码器从CVSD变成mSBC&#xff08;modified SBC&#xff0c;改进的SBC&#xff09;等。蓝牙语音通话相关的HFP&#xff08;Hand Free Profile&#xff09;强烈建议…

【随笔】Git -- 解决提交时本地与目标分支不一致导致提交失败(三)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

高标准农业四情监测系统的应用范围

高标准农业四情监测系统的应用范围【TH-Q1】随着科技的不断进步&#xff0c;高标准农业四情监测系统已经逐渐成为现代农业的重要组成部分。这一系统能够实时监测土壤、气候、作物生长和病虫害情况&#xff0c;为农业生产提供精准的数据支持&#xff0c;从而提高农作物的产量和质…

武汉星起航引领跨境电商新潮流,一站式孵化平台助力合作伙伴腾飞

在全球经济一体化的大趋势下&#xff0c;跨境电商以其独特的优势逐渐成为连接各国市场的桥梁。随着市场竞争的加剧&#xff0c;传统的经营模式已难以满足日益复杂的业务需求&#xff0c;合作伙伴迫切需要更为全面、专业的指导和支持。正是在这样的背景下&#xff0c;武汉星起航…

使用go将http升级为websocket的代码

package mainimport ("fmt""github.com/gorilla/websocket""log""net/http" )// 我们去定义一个 Upgrader // 这需要一个 Read 和 Write 的缓冲大小 var upgrader websocket.Upgrader{ReadBufferSize: 1024,WriteBufferSize: 1024,/…

读天下杂志读天下杂志社读天下编辑部2023年第51期目录

阅读星光 满树桃花开&#xff0c;桃李报恩来 (1) 曹万花 困境中求生&#xff0c;逆境中发展——《鲁滨孙漂流记》阅读感悟 (4) 车宝江 《诗经》对我国传统意境论的深化 (7) 成卓华、 《读天下》投稿&#xff1a;cn7kantougao163.com 英美文学作品翻译中的不对等性…

SCI论文发表很容易【1】:论文投稿

下面总结了SCI写作完成后投稿所需要的所用文件和模板 1.1 投稿:外文期刊投稿状态 (1)Submitted to Journal: 当上传结束后,显示的状态是Submitted to Journal,这个状态是自然形成的无需处理。 (2)With editor 如果在投稿的时候没有要求选择编辑,就先到主编那里,主…

AJAX-Promise

定义 Promise对象用于表示(管理)一个异步操作的最终完成&#xff08;或失败&#xff09;及其结果值。 好处&#xff1a;1&#xff09;成功和失败状态&#xff0c;可以关联对应处理程序 2&#xff09;了解axios函数内部运作机制 3&#xff09;能解决回调函数地狱问题 语法&…

1179: 判断回文数(python)

收藏 难度&#xff1a;一般 标签&#xff1a;暂无标签 题目描述 一个5位数&#xff0c;判断它是不是回文数。即12321是回文数&#xff0c;个位与万位相同&#xff0c;十位与千位相同 输入 多组数据&#xff0c;每组数据仅含一个5位数 输出 Yes 或者 No 表示该数是否为回…

[HackMyVM]靶场 Liceo

kali:192.168.56.104 靶机:192.168.56.124 端口扫描 nmap 192.168.56.124 # nmap 192.168.56.124 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-22 10:56 CST Nmap scan report for 192.168.56.124 Host is up (0.000095s latency). Not shown: 997 closed…

SAP-MM-设置字段默认值

当我们创建订单时&#xff0c;有些字段总是重复输入&#xff0c;每次值也是固定的&#xff0c;例如生产订单 如上图“生产工厂都是1000”如何设置成默认每次进入都是1000呢&#xff1f; 点击字段&#xff0c;F1 查看参数ID“WRK” 输入tcode&#xff1a;SU3 按上图维护数据100…

【云呐】设备固定资产管理系统怎么使用,有哪些功能

不同的软件和实际应用场景可能会使用设备固定资产管理系统软件。一般而言&#xff0c;这个软件通常包括以下功能&#xff1a;  用户管理&#xff1a;系统可以创建实时跟踪不同的用户和用户组&#xff0c;并设置不同的权限和访问级别。  权限设置&#xff1a;根据权限设置功…

c语言基础笔记(1)进制转换以及++a,a++,取地址和解引用

一进制转换 OCT - 八进制 DEC - 十进制 HEX - 十六进制 0520&#xff0c;表示八进制 0x520表示16进制 unsigned 无符号&#xff0c;只有正的 signed 有正有负数 char默认是signed 类型 #include <stdio.h>int main(void) { //字符转换成数字char a 5;int a1 a- 4…

SW工具下没有URDF

解决方案&#xff0c;下载

flask之ssti [WesternCTF2018]shrine1

打开题目 整理一下&#xff0c;代码: import flask import osapp flask.Flask(__name__) app.config[FLAG] os.environ.pop(FLAG) app.route(/)def index():return open(__file__).read()app.route(/shrine/)def shrine(shrine):def safe_jinja(s):s s.replace((, ).replac…

二、Web3 学习(区块链)

区块链基础知识 一、基础知识1. 区块链可以做什么&#xff1f;2. 区块链的三个特点 二、区块链的类型概括1. PoW2. PoS3. 私有链和联盟链 三、智能合约1. 什么是智能合约2. 如何使用智能合约 四、困境1. 三难选择的基本要素2. 这真的是一个三难选择吗? 五、比特币1. 什么是比特…