《LeetCode热题100》笔记题解思路技巧优化_Part_2

《LeetCode热题100》笔记&题解&思路&技巧&优化_Part_2

  • 😍😍😍 相知
  • 🙌🙌🙌 相识
  • 😢😢😢 开始刷题
    • 普通数组
      • 🟡1. 最大子数组和
      • 🟡2. 合并区间
      • 🟡3. 轮转数组
      • 🟡4. 除自身以外数组的乘积
      • 🔴5. 缺失的第一个正数
    • 矩阵
      • 🟡6. 矩阵置零
      • 🟡7. 螺旋矩阵
      • 🟡8. 旋转图像
      • 🟡9. 搜索二维矩阵II

在这里插入图片描述

😍😍😍 相知

刷题不要一上来就直接干,先看题,明白题说的什么意思,然后想一下用什么现成的算法和数据结构可以快速解决,如果还是无从下手,建议先去看视频,不要直接翻评论或官方代码实现,看完视频,自己在idea中模拟敲几遍代码,如果跑通了,先别急着上leetcode黏贴,而是再回顾一下要点,然后确定自己完全懂了后,在leetcode中手敲,注意是手敲下来!!! 目前我就是采用的这种方法,虽然慢,但是可以维持一周忘不掉它,如果要想长期不忘,只能隔段时间就review一下了,就算是大牛,知道方法,长时间不碰,也不可能保证一次到位把代码敲完一遍过!!!

🙌🙌🙌 相识

刷LeetCode热题100的想法有几个原因:

  1. 流行度高:LeetCode是一个广受欢迎的在线刷题平台,拥有大量用户和活跃的讨论社区。因此,热门题目通常代表了大多数人认为重要的题目或者面试中常见的题目。

  2. 面试备战:LeetCode上的题目往往和面试题目有很大的重合度。刷LeetCode热题100可以帮助你熟悉常见的面试题型和解题思路,提高应对面试的能力。

  3. 广泛的覆盖:热题100覆盖了各种难度级别的题目,包括简单、中等和困难。通过解答这些题目,可以提高自己的算法和编程能力,并扩展自己的知识面。

  4. 反馈和讨论:由于热题100是根据用户的反馈和讨论度排名的,因此这些题目往往有大量的解题思路和讨论可以参考。你可以从其他人的解题过程中学习到很多知识和技巧。

😢😢😢 开始刷题

普通数组

🟡1. 最大子数组和

题目跳转:https://leetcode.cn/problems/maximum-subarray/description/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述

class Solution {public int maxSubArray(int[] nums) {if(nums.length<=0)return 0;int max = nums[0];int left = 0;int [] maxconut  = new int[nums.length];maxconut[0] = nums[0];for(int right = 1;right < nums.length;right++){maxconut[right] = maxconut[right-1]+nums[right]>=nums[right]?maxconut[right-1]+nums[right]:nums[right];max = Math.max(max,maxconut[right]);}return max;}
}

🟡2. 合并区间

题目跳转:https://leetcode.cn/problems/merge-intervals/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述

class Solution {public int[][] merge(int[][] intervals) {if(intervals.length<=1)return intervals;Arrays.sort(intervals, (a, b) -> a[0] - b[0]);ArrayList<int[]> arraylist = new ArrayList<>();int start = intervals[0][0];int rightbound = intervals[0][1];for(int i =1 ;i<intervals.length;i++){if(rightbound<intervals[i][0]){arraylist.add(new int[]{start, rightbound});start = intervals[i][0];rightbound = intervals[i][1];}else{rightbound = Math.max(rightbound,intervals[i][1]);}}arraylist.add(new int[]{start, rightbound});return arraylist.toArray(new int [0][0]);}
}

🟡3. 轮转数组

题目跳转:https://leetcode.cn/problems/rotate-array/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述
学会一个函数:
System.arraycopy(nums,0,arr,nums.length-k,k);

直接举例:

arrayCopy( arr1, 2, arr2, 5, 10);

意思是;将arr1数组里从索引为2的元素开始, 复制到数组arr2里的索引为5的位置, 复制的元素个数为10个.

class Solution {public void rotate(int[] nums, int k) {if(nums.length<=1) return; k = k%nums.length;k = nums.length - k;int [] arr = new int [nums.length];System.arraycopy(nums,0,arr,nums.length-k,k);System.arraycopy(nums,k,arr,0,nums.length-k);System.arraycopy(arr,0,nums,0,nums.length);}}

🟡4. 除自身以外数组的乘积

题目跳转:https://leetcode.cn/problems/product-of-array-except-self/?envType=study-plan-v2&envId=top-100-liked
在这里插入图片描述

class Solution {public int[] productExceptSelf(int[] nums) {if(nums.length==1)return nums;int [][] temp = new int [2][nums.length];int [] result  = new int [nums.length];for(int i = 0;i<nums.length;i++){if(i==0) temp[0][i] = 1;else{temp[0][i] = temp[0][i-1]*nums[i-1];}}for(int i = nums.length-1;i>=0;i--){if(i==nums.length-1) temp[1][i] = 1;else{temp[1][i] = temp[1][i+1]*nums[i+1];}}for(int i = nums.length-1;i>=0;i--){result[i] = temp[0][i]*temp[1][i];}return result;}
}

🔴5. 缺失的第一个正数

题目跳转:https://leetcode.cn/problems/first-missing-positive/?envType=study-plan-v2&envId=top-100-liked

把对应的数放到对应的索引处

class Solution {public int firstMissingPositive(int[] nums) {for(int i = 0;i < nums.length;i++ ){while(nums[i]>0&&nums[i]<nums.length){if(nums[i] == nums[nums[i]-1])break;int temp = nums[nums[i]-1];nums[nums[i]-1] = nums[i];nums[i] = temp;}}for(int i = 0;i < nums.length;i++ ){if(nums[i]!=i+1)return i+1;}return nums.length+1;}
}

矩阵

🟡6. 矩阵置零

题目跳转:https://leetcode.cn/problems/set-matrix-zeroes/description/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述
在这里插入图片描述

得到原始数组 先遍历!
在这里插入图片描述
得到各个0位置之后,再处理。
在这里插入图片描述

class Solution {public void setZeroes(int[][] matrix) {if(matrix.length<=0||matrix[0].length<=0)return;ArrayList<int[]> temp = new ArrayList<>();for(int i = 0;i<matrix.length;i++){for(int j = 0;j<matrix[0].length;j++){if(matrix[i][j]==0){temp.add(new int[]{i,j});}}}for(int i = 0;i < temp.size();i++){int aa = 0;while(aa<matrix[0].length)matrix[temp.get(i)[0]][aa++] =0;int bb = 0;while(bb<matrix.length)matrix[bb++][temp.get(i)[1]] =0;}}
}

🟡7. 螺旋矩阵

题目跳转:https://leetcode.cn/problems/spiral-matrix/description/?envType=study-plan-v2&envId=top-100-liked

定义几个边界值,然后遍历完一行或者 一列 则收缩一个值

class Solution {public List<Integer> spiralOrder(int[][] matrix) {if(matrix.length<=0||matrix[0].length<=0) return new ArrayList<>();List<Integer> list = new ArrayList<>();int left = 0;int right = matrix[0].length-1;int up = 0;int down = matrix.length-1;int row = left;int col = up;// 以上定义了变量while(left<=right||up<=down){while(row<=right){list.add(matrix[col][row++]);}up++;row = right;col = up;if(right<left||down<up)break;while(col<=down){list.add(matrix[col++][row]);}right--;row = right;col = down;if(right<left||down<up)break;while(row>=left){list.add(matrix[col][row--]);}down--;row = left;col = down;if(right<left||down<up)break;while(col>=up){list.add(matrix[col--][row]);}left++;row = left;col = up;if(right<left||down<up)break;}return list;}
}

🟡8. 旋转图像

题目跳转:https://leetcode.cn/problems/rotate-image/description/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述
在这里插入图片描述

class Solution {public void rotate(int[][] matrix) {if(matrix.length<=0||matrix[0].length<=0)return;int left = 0;int right = matrix[0].length-1;int up = 0;int down = matrix.length-1;while(left<right){int temp = 0;for(int i = 0;i<right-left;i++){temp = matrix[up][left+i];matrix[up][left+i] = matrix[down-i][left];matrix[down-i][left] = matrix[down][right-i];matrix[down][right-i] = matrix[up+i][right];matrix[up+i][right] = temp;}left++;right--;up++;down--;}}
}

🟡9. 搜索二维矩阵II

题目跳转:https://leetcode.cn/problems/search-a-2d-matrix-ii/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述

class Solution {public boolean searchMatrix(int[][] matrix, int target) {if(matrix.length<=0||matrix[0].length<=0)return false;int row = 0;int col = matrix[0].length-1;while(row>=0&&row<matrix.length&&col>=0&&col<matrix[0].length){if(matrix[row][col]==target)return true;else if(matrix[row][col]<target) row++;else col--;}return false;}
}

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

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

相关文章

【FX110】突发:经纪商CAPITAL.COM暂停接受英国客户

经纪商 Capital.com 宣布暂时停止接收来自英国的新客户。 当访问英国的Capital.com网站并尝试开设账户时&#xff0c;用户会收到一条消息&#xff0c;指出该公司“已决定暂时暂停在英国接纳新客户”。 声明表示&#xff0c;“作为一家企业&#xff0c;我们发展迅速&#xff0c;…

无人机三维建模过程中注意事项

无人机三维建模是指利用无人机技术进行三维建模&#xff0c;该方法通过无人机搭载的多种传感器&#xff0c;如摄像头、激光扫描仪等&#xff0c;获取建筑物的多角度影像数据&#xff0c;然后利用计算机视觉技术和三维重建算法&#xff0c;将这些影像数据转化为高精度的三维模型…

【送书福利第五期】:ARM汇编与逆向工程

文章目录 &#x1f4d1;前言一、ARM汇编与逆向工程1.1 书封面1.2 内容概括1.3 目录 二、作者简介三、译者介绍&#x1f324;️、粉丝福利 &#x1f4d1;前言 与传统的CISC&#xff08;Complex Instruction Set Computer&#xff0c;复杂指令集计算机&#xff09;架构相比&#…

ARM Cortex R52内核 01 概述

ARM Cortex R52内核 01 Introduction 1.1 Cortex-R52介绍 Cortex-R52处理器是一种中等性能、有序、超标量处理器&#xff0c;主要用于汽车和工业应用。它还适用于各种其他嵌入式应用&#xff0c;如通信和存储设备。 Cortex-R52处理器具有一到四个核心&#xff0c;每个核心实…

C#装箱和拆箱

一&#xff0c;装箱 装箱是指将值类型转化为引用类型。 代码如下&#xff1a; 装箱的内部过程 当值类型需要被装箱为引用类型时&#xff0c;CLR&#xff08;Common Language Runtime&#xff09;会为值类型分配内存&#xff0c;在堆上创建一个新的对象。值类型的数据会被复…

Github: Github actions自动化工作原理与多workflow创建和部署

Github actions 1 &#xff09;概述 Github Actions 是Github官方推出的 CI/CD 解决方案 https://docs.githu.com/en/actions 优点 自动发布流程可减少发布过程中手动操作成本&#xff0c;大幅提升ci/cd效率&#xff0c;快速实现项目发布上线 缺点 存在较高的技术门槛需要利用…

【Git教程】(八)版本库间的交换 —— 版本库的克隆与命名,分支监控、命名、拉取及推送 ~

Git教程 版本库间的交换 1️⃣ 克隆版本库2️⃣ 如何告知 Git 其他版本库的位置3️⃣ 给版本库添加别名4️⃣ 获取数据5️⃣ 远程跟踪分支&#xff1a;监控其他分支6️⃣ 利用本地分支操作别处的版本库7️⃣ PULL操作8️⃣ PUSH操作9️⃣ 命名分支&#x1f33e; 总结 Git 是个…

elementUI两个select单选框联动

实现需求&#xff1a;两个单选框内容两栋&#xff0c;在选择第一个时&#xff0c;第二个选框能自动更新对应选项。且在切换第一个选项内容时&#xff0c;第二个选框会被清空且切换到新的对应选项。 设置值班班次和备班情况两个选项 &#xff0c;完整代码如下&#xff1a; <…

论文阅读_时序模型_iTransformer

1 2 3 4 5 6 7 8英文名称: ITRANSFORMER: INVERTED TRANSFORMERS ARE EFFECTIVE FOR TIME SERIES FORECASTING 中文名称: ITRANSFORMER&#xff1a;倒置Transformers在时间序列预测中的有效性 链接: https://openreview.net/forum?idX6ZmOsTYVs 代码: https://github.com/thum…

【排序算法】-- 深入理解桶排序算法

概述 在计算机科学中&#xff0c;排序算法是一种对数据进行有序排列的重要技术。桶排序&#xff08;Bucket Sort&#xff09;是一种常见的排序算法&#xff0c;它通过将数据分到有限数量的桶中&#xff0c;并对每个桶中的数据分别排序&#xff0c;最后按照顺序将所有桶中的数据…

机器视觉学习(四)—— 图像的色彩

目录 一、图像的基础知识 二、NumPy模块 三、图像色彩变化 3.1 RGB图像的分通道显示 3.2 HSV图像的分通道显示 一、图像的基础知识 总结的笔记&#xff1a; """ 二值图: 每个像素取值 0或1,图像显示出来只有黑白色; 黑色:0 白色:1 灰度图: …

IoT 物联网场景中 LoRa + 蓝牙Bluetooth 室内场馆高精定位技术全面解析

基于LoRa蓝牙的室内场景定位技术&#xff0c;蓝牙主要负责位置服务&#xff0c;LoRa主要负责数据传输。 01 LoRa和蓝牙技术 LoRa全称 “Long Rang”&#xff0c;是一种成熟的基于扩频技术的低功耗、超长距离的LPWAN无线通信技术。LoRa主要采用的是窄带扩频技术&#xff0c;抗干…

基于深度学习的口罩人脸识别研究进展

MTCNN模型训练输入的所有图像都是正样本&#xff08;戴口罩的照片&#xff09;&#xff0c;没有负样本作为模型输入。在后续的识别任务模块中&#xff0c;导入MTCNN模型检测结果&#xff0c;对特征点进行编码比较进行识别。 基于MTCNN的口罩人脸识别框架可分为四个阶段&#xf…

大美博罗迎盛会,“村ART“点亮新征程

三月的博罗,春意盎然,生机勃勃。在这万物复苏的美好时节,首届"村ART"乡村艺术作品评比大赛盛大开启。本次大赛由博罗县政府和泰康保险集团联合主办,以"农民画农民、农民画农村"为主题,旨在为广大农民朋友搭建一个展示才华、抒发情怀的广阔舞台,用艺术之光点…

IDEA : 已经有一个永久破解版的IDEA2019版本,现在又想安装最新版本的,俩版本共存,发现新版本打不开的解决方案

在新文件的目录下&#xff0c;注释掉一行19版本的地址 地址&#xff1a;C:\Users\23999\AppData\Roaming\JetBrains\IntelliJIdea2023.2 (不同电脑Users后边的一个地址的注释会不一样) 然后找到该目录下的indea64.exe.vmoptions 用 记事本 打开 在-javaagent 那一栏里会自动给…

营气卫气是什么?循行规律?

营在脉中&#xff0c;卫在脉外&#xff0c;营周不休。 营气 营在脉中运行&#xff0c;为什么营气能在脉中运行呢&#xff1f;因其性柔顺精专&#xff0c;所以营气能循行、运行于经脉之中&#xff0c;正如《灵枢卫气》所云“其精气之行于经者&#xff0c;为营气”。 营气的运行…

使用CURL命令确定Access-Control-Allow-Origin问题

一、问题描述 有前端小伙伴反馈ajax请求遇到跨域问题&#xff0c;也让后端小伙伴设置了跨域允许&#xff0c;但诡异的事情是在前端小伙伴的微信开发者工具中Network headers中看到了两行&#xff1a;Access-Control-Allow-Origin&#xff0c;其中居然出现了&#xff1a;“Acce…

uniapp兴趣社区交友圈子系统小程序源码 thinkphp框架后台管理

圈子论坛社区系统&#xff0c;含完整的后台PHP系统。功能&#xff1a;小程序授权登陆&#xff0c;H5和APP&#xff0c;手机号登陆&#xff0c;发帖&#xff0c;建圈子、发活动。圈主可置顶推荐帖子&#xff0c;关注、点赞、评论、交流等。可作为圈子贴吧等自媒体。 兴趣社区圈…

丁腈手指套:守护你的指尖,赋予无限可能

在繁忙的现代生活中&#xff0c;无论是在工业车间、医疗场所&#xff0c;还是日常生活的琐碎细节中&#xff0c;保护我们的双手都显得尤为重要。丁腈手指套作为一种专业的防护用品&#xff0c;以其出色的防护性能、舒适性和灵活性&#xff0c;为众多领域的工作者提供了便捷而高…

SQLServer介绍、安装、数据库导入导出

安装 本地运行的&#xff1a;cn_sql_server_2008_r2_express_with_management_tools_x64.exe 官网&#xff1a;SQL Server下载 同上链接下载SSMS管理 SQL Server Management Studio&#xff08;SSMS&#xff09;是干什么的&#xff1f; SQL Server Management Studio&#x…