剑指offer
文章平均质量分 55
IT_Octopus
我仍在山麓,却仰望山巅。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
力扣热题100 20. 有效的括号
简言之:只要遇见右括号,然后和栈中栈顶数据比较,是一对就返回,不是则不对。👉 现在心里记得:先开了圆门,再开了方门(方门是最新的!💡 新题其实变成了:检查每种括号的左、右出现次数是否相等。因为他不知道什么时候关,也不知道关的时候是否匹配。(关门),他查不到!→ 开圆门 → 记在心里(入栈)→ 开方门 → 记在心里(入栈)(开门),他会想:“哦,以后要关。👉 但他心里记得最近开的是方门。👉 他就不知道该配哪个开门动作!这个题目其实是一个阅读理解题,门,应该对应哪个开门动作?” —— 但这没用!原创 2026-01-28 17:09:19 · 454 阅读 · 0 评论 -
力扣热题100 15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]输入:nums = [0,1,1]输入:nums = [0,0,0]解释:唯一可能的三元组和为 0。输出:[[0,0,0]]原创 2026-01-21 15:04:57 · 85 阅读 · 0 评论 -
力扣热题100 11. 盛最多水的容器
前提提要:看懂题目很重要,看懂题目之后就很简单了,用简单的写法先写一遍,超时了然后换思路,如果不会赶紧看题解。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。宽是一直变的,那就控制高,如果高是足够高的,那面积是一定是比低的大。木桶效应,取决于最低的木头,所以挪矮的,让它变高。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]原创 2026-01-19 16:27:09 · 112 阅读 · 0 评论 -
算法题:力扣 热题100道 中等难度128. 最长连续序列
1.这道题其实很有说法,看题目很简单,但是考察的知识点比较细,比较考验逻辑思考能力(就是尼玛难为人,给聪明人写的题)给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。看到 11 → 数:11,12,13 → 长度 3 ❌(重复!不在 → 说明 10 是开头 → 开始数 ✅。看到 10 → 数:10,11,12,13 → 长度 4 ✅(有用)看到 12 → 数:12,13 → 长度 2 ❌(又重复!看到 13 → 数:13 → 长度 1 ❌(完全没必要)原创 2025-12-04 11:13:54 · 383 阅读 · 0 评论 -
java剑指 Offer 56 - II. 数组中数字出现的次数 II
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 class Solution { public int singleNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.contai原创 2021-02-24 17:56:41 · 246 阅读 · 0 评论 -
剑指 Offer 62. 圆圈中最后剩下的数字
不要用LinkedList作为容器,因为链表做索引时间过长。 这道题不要多想…千万不要多想,看题,它说删除就是删除。或者自己再举个例子看看,它那个例子就是迷惑你的。 class Solution { public int lastRemaining(int n, int m) { ArrayList<Integer> list = new ArrayList(); if (n < 1 || m < 1) return -1;原创 2020-11-16 14:03:17 · 197 阅读 · 0 评论 -
剑指 Offer 59 - I. 变型之固定滑动窗口的最大值
= = 暴力法执行,把题目想简单了,觉得是k是固定3,不过即使是这样编码时间也很长哎…果然还是菜的 public class String59 { public static void main(String[] args) { // int[] nums = {1, 3, -1, -3, 5, 3, 6, 7, 7}; int[] nums = {1,-1}; System.out.println(Arrays.toString(nums));原创 2020-11-06 17:34:18 · 199 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
class Solution { public String reverseLeftWords(String s, int n) { String substring = s.substring(n); String substring1 = s.substring(0, n); return substring+substring1; } }原创 2020-11-06 11:11:41 · 169 阅读 · 0 评论
分享