力扣爆刷第87天之hot100五连刷21-25

力扣爆刷第87天之hot100五连刷21-25

文章目录

      • 力扣爆刷第87天之hot100五连刷21-25
      • 一、240. 搜索二维矩阵 II
      • 二、160. 相交链表
      • 三、206. 反转链表
      • 四、234. 回文链表
      • 五、141. 环形链表

一、240. 搜索二维矩阵 II

题目链接:https://leetcode.cn/problems/search-a-2d-matrix-ii/description/?envType=study-plan-v2&envId=top-100-liked
思路:从横向递增纵向递增的矩阵中搜索target,利用顺序的特性,从矩阵的右上角进行搜索,如果相等就返回,如果大于向下进行搜索,如果小于向左进行搜索,存在的话自然可以找到,不存在的话会一直搜索到边界才会停止,也就是当前算法还有改进的空间,可以采取早停措施。
在这里插入图片描述

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

二、160. 相交链表

题目链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/description/?envType=study-plan-v2&envId=top-100-liked
思路:经典题目,直接求长度,然后对齐,然后同步比较,相同即返回。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode pa = headA, pb = headB;int lenA = 0, lenB = 0;while(pa != null) {lenA++;pa = pa.next;}while(pb != null) {lenB++;pb = pb.next;}pa = headA;pb = headB;while(lenA > lenB) {pa = pa.next;lenA--;}while(lenB > lenA) {pb = pb.next;lenB--;}while(pa != null) {if(pa == pb) {return pa;}pa = pa.next;pb = pb.next;}return null;}
}

三、206. 反转链表

题目链接:https://leetcode.cn/problems/reverse-linked-list/description/?envType=study-plan-v2&envId=top-100-liked
思路:两个指针,一个指向头结点,一个用于向后走,遍历过程中用临时变量记录临时节点,然后采用头插法即可。

class Solution {public ListNode reverseList(ListNode head) {ListNode root = new ListNode();ListNode p1 = root, p2 = head;while(p2 != null) {ListNode t = p2;p2 = p2.next;t.next = p1.next;p1.next = t;}return root.next;}
}

四、234. 回文链表

题目链接:https://leetcode.cn/problems/palindrome-linked-list/description/?envType=study-plan-v2&envId=top-100-liked
思路:直接快慢指针定位中间节点,然后翻转其中一般的链表,然后遍历比较即可。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public boolean isPalindrome(ListNode head) {ListNode p1 = head, p2 = head;while(p2 != null && p2.next != null) {p1 = p1.next;p2 = p2.next.next;}if(p2 != null) {p1 = p1.next;}p2 = reverse(p1);p1 = head;while(p2 != null) {if(p1.val != p2.val) {return false;}p1 = p1.next;p2 = p2.next;}return true;}ListNode reverse(ListNode head) {ListNode root = new ListNode();ListNode p1 = root, p2 = head;while(p2 != null) {ListNode t = p2;p2 = p2.next;t.next = p1.next;p1.next = t;}return root.next;}
}

五、141. 环形链表

题目链接:https://leetcode.cn/problems/linked-list-cycle/description/?envType=study-plan-v2&envId=top-100-liked
思路:判断是否有环,直接快慢指针。

public class Solution {public boolean hasCycle(ListNode head) {ListNode slow = head, fast = head;while(fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;if(slow == fast) return true;}return false;}
}

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

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

相关文章

信号处理--基于单通道脑电信号EEG的睡眠分期评估

背景 睡眠对人体健康很重要。监测人体的睡眠分期对于人体健康和医疗具有重要意义。 亮点 架构在第一层使用两个具有不同滤波器大小的 CNN 和双向 LSTM。 CNN 可以被训练来学习滤波器&#xff0c;以从原始单通道 EEG 中提取时不变特征&#xff0c;而双向 LSTM 可以被训练来将…

Unity的滑动控制相机跟随和第三人称视角三

Unity的相机跟随和第三人称视角三 第三人称相机优化介绍讲解拖动事件相机逻辑人物移动逻辑总结 第三人称相机优化 Unity第三人称相机视角一 Unity第三人称相机视角二 介绍 之前相机视角讲过了两篇文章了&#xff0c;但是都是自动旋转视角&#xff0c;今天来了新需求&#xf…

05 | 深入浅出索引(下)

在上一篇文章中&#xff0c;我和你介绍了 InnoDB 索引的数据结构模型&#xff0c;今天我们再继续聊聊跟 MySQL 索引有关的概念。 在开始这篇文章之前&#xff0c;我们先来看一下这个问题&#xff1a; 在下面这个表 T 中&#xff0c;如果我执行 select * from T where k betwe…

Java项目:40 springboot月度员工绩效考核管理系统009

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统的功能分为管理员和员工两个角色 管理员的功能有&#xff1a; &#xff08;1&#xff09;个人中心管理功能&#xff0c;添加管理员账号和修改…

Jmeter高效组织接口自动化用例

1、善用“逻辑控制器”中的“简单控制器”。可以把简单控制器像文件夹一样使用&#xff0c;通过它来对用例进行分类归档&#xff0c;方便后续用例的调试和执行。 2、同编写测试用例一样&#xff0c;这里的接口测试用例应该进行唯一性编号&#xff0c;这样在运行整个用例计划出现…

【ts-node】基于Typescript开发Node项目的tsconfig.json文件的配置【根据不同的Node版本配置】

第一步&#xff1a;安装对应Node版本的tsconfig.js文件 第二步&#xff1a;添加到自己的tsconfig.json: "extends": "tsconfig/node16/tsconfig.json" 最终的配置如下&#xff1a; {"extends": "tsconfig/node16/tsconfig.json",…

【CSP试题回顾】201703-2-学生排队

CSP-201703-2-学生排队 解题思路 初始化队列&#xff1a; 初始时&#xff0c;学生按照学号从小到大顺序排队&#xff0c;即学号1的学生在最前面&#xff0c;学号n的学生在最后面。使用一个向量&#xff08;vector&#xff09;myQueue来模拟这个队列&#xff0c;初始填充为1, 2…

Android Framework 通过脚本动态修改应用私有文件执行权限

你只活一次 要悦己 脚本配置 Android_source/device/sprd/***/test/test_chmod.rc service test_chmod /vendor/bin/test_chmod.shuser rootdisabledoneshoton property:sys.test_chmodtruestart test_chmodAndroid_source/device/sprd/***/test/test_chmod.sh #!/system/bin/…

第一套试卷大题

1.邻接矩阵和邻接表的写法&#xff1a; **介绍&#xff1a;**该图是一个无向图&#xff0c;所以邻接矩阵一定是对称的&#xff0c;而邻接表某节点的边数为无向图某节点的连接数 无向图的邻接矩阵&#xff1a; 无向图的邻接表&#xff08;不唯一&#xff09;&#xff1a; 根据无…

【CSP试题回顾】201703-1-分蛋糕

CSP-201703-1-分蛋糕 解题代码 #include <iostream> using namespace std;int n, k, sumCake, cake, friendNum;int main() {cin >> n >> k;for (int i 0; i < n; i){cin >> cake;sumCake cake;if (sumCake > k || i n - 1) {friendNum;sum…

2024/3/7打卡公共子序列---动态规划问题

题目&#xff1a; 给定两个长度分别为 N 和 M 的字符串 A 和 B&#xff0c;求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为 N 的字符串&#xff0c;表示字符串 A。 第三行包含一个长度为 M 的字符串&am…

HiWoo Box数据远程采集模块

在数字化浪潮中&#xff0c;数据远程采集模块成为了推动工业转型升级的关键力量。作为工业物联网边缘网关&#xff0c;HiWoo Box网关的数据远程采集模块以其卓越的性能和可靠性&#xff0c;正助力企业实现数字化转型和智能化升级。下面&#xff0c;我们将从以下几个方面来探讨H…