自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Leetcode每日一题 20240216 Least Number of Unique Integers after K Removals

Method1: 用list从大到小排序 (heap同理, 即PriorityQueue<>())

2024-02-17 09:03:38 735

原创 Leetcode接雨水

双指针法: intuition 左指针向右移动遇到更高的height可以储更多的水, 即可以抵消width下降的影响, 同理右指针向左。同双指针法, 需要记录左右指针的最大height, 算储水量需要一块一块算。左指针高度小于右指针 left++

2024-02-16 05:41:09 365

原创 Leetcode每日一题 20240131 Daily Temperatures

在一个数组里找到后一个比前一个温度高的index差距, 问题问的是index差距, 所以stack里面不能存温度。stack被用来比较数据大小, 尤其是顺序很相关的时候。

2024-02-01 04:20:30 360 1

原创 Leetcode每日一题 20240129 Implement Queue using Stacks

利用两个stack实现queue。

2024-01-31 04:13:01 349

原创 Bit Manipulation

NOT(~)N = 5 = 101~N = 010AND(&)A = 5 = 101B = 1 = 001A & B = 001OR(|)A = 5 = 101B = 1 = 001A | B = 111XOR(^)A = 5 = 101B = 1 = 001A ^ B = 100Left Shift (<<) just equivalent to multiplying the bit pattern with 2A = 1 = 001A &

2023-10-31 06:58:08 23

原创 Explore Recursion

一般来说的递归题, 先用递归方程得到返回值, 再进行后面的操作 -> 可以看成后序遍历?recursive找到层与层之间关系的, 要注意用HashMap减少中间计算。

2023-10-21 03:49:55 30

原创 栈与队列 part3

栈通常是通过一个链表数据结构来实现的,每个元素都包含一个指向下一个元素的引用。这意味着元素在内存中不一定是连续存储的,而是通过指针或引用连接在一起,形成一个链表结构。这种设计使得堆栈能够有效地进行元素的插入和删除操作递归的实现是栈:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中。

2023-10-13 15:36:17 24

原创 20230815 | LinkedList Part2

求出两个链表的长度,并求出两个链表长度的差值,然后让curA移动到,和curB 对齐的位置。双指针法, fast先移到第n位, 再fast/slow同时移。用HashSet记录判断是否为同一地址的ListNode。可以看成后序遍历, 需要返回newNode为后面所用。找到2个临时ListNode, 按顺序换。

2023-10-02 17:26:34 40 1

原创 Leetcode每日一题 20230927 Decoded String at Index

定位。

2023-09-27 14:03:14 24

原创 Leetcode每日一题 20230925 Champagne Tower

题目很巧妙, instead of keeping track of how much chanpagne in each glass, keep track of the amount of champagne flow through each glass.

2023-09-26 15:45:23 83

原创 Leetcode每日一题 20230926 Remove Duplicate Letters

去除重复字母, 使结果遵守the smallest in lexicographical order。

2023-09-26 15:18:43 15

原创 20230825 | 二叉树 Part4

本题求的是高度(height-balanced), 显然后序遍历。求二叉树的深度 -> 从上到下: 可以用前序遍历。高度 -> 从下到上: 后序遍历。

2023-09-01 23:59:49 47 1

原创 20230824 | 二叉树 Part3

后序遍历在确定函数时一定要明确返回什么东西, 遍历左子树+右子树后什么东西是我们需要的。

2023-08-30 00:55:23 44

原创 Leetcode每日一题 20230801 Combinations

回溯需要不断调用自身函数, 但这里的调用自身函数不是和递归一样去解决子问题, 而是为了穷举所有可能的情况。backtrack = dfs + 剪枝, 在dfs的过程中用剪枝避免无效搜索。回溯算法的本质是穷举搜索。

2023-08-26 01:53:32 18

原创 20230823 | 二叉树 Part2

层序遍历的过程和取出queue里面的值是两个步骤, 不应搞混。先进后出适合模拟深度优先遍历也就是递归的逻辑。先进先出,符合一层一层遍历的逻辑, 迭代。

2023-08-24 02:26:38 81 1

原创 Leetcode每日一题 20230823 Reorganize String

首先想到用char确定每个字母的个数, 这里有int[] / HashMap 两种方法. 我一开始用的是HashMap, 但是在后续的操作中发现很麻烦, 改用int[]第二点一开始做题并没有想到, 即如果条件没有达到在什么时候返回"". 当其他所有元素都被poll, PriorityQueue最后只剩了最频繁出现元素, 这个时候。本题的关键在于相邻char不能一样, 频率最高的char显然应该出现次数最多, 想到要用PriorityQueue来给每个char排序。

2023-08-23 23:29:25 23

原创 20230814 | LinkedList Part1

int val;

2023-08-23 15:15:11 32 1

原创 20230822 | 二叉树 Part1

定义部分来自

2023-08-23 00:53:44 74

原创 Leetcode每日一题 20230822 Excel Sheet Column Title

由上述两公式数字和单字母可以相互转化, 联想Anagram的数组解法。类比Happynum, 从右往左拿到每一位数字 -> % -> /本题可以把base看成26. x, y, z代表了各位数字。

2023-08-22 17:10:40 18 1

原创 Leetcode每日一题 20230821

看输入String是否由重复的substring组成。

2023-08-22 01:31:48 59 1

原创 20230815 | HashTable Part2

思路: 左边两个数组相加得到可能的HashMap的key, 次数由value决定, 该次数是用来被后续的右边两个数组所减。该题的本质是找元素是否出现在集合里, 左二数组之和的相反数是否会出现在右二数组之和中。和 242.有效的字母异位词 是一个思路, 新建数组/HashMap。

2023-08-21 01:52:54 27 1

原创 Leetcode每日一题 20230816

回忆deque Method。每个window分别找最大。

2023-08-17 18:40:19 43 1

原创 Leetcode每日一题 20230814

Notice: PriorityQueue是最小堆结构, 直接print queue并不会严格从小到大排序。使用PriorityQueue, 只保留k位数字, 多余部分省略.仿照快速排序+二分法, 确定锚点, 排序得出第k大的值。

2023-08-16 00:56:40 69 1

原创 Leetcode每日一题 20230815

思路很好想到, 分别用两条链表记录大于小于的情况, 再拼成一条.Notice: 链表要注意切断。

2023-08-16 00:39:50 28 1

原创 20230814 | HashTable Part1

当我们要快速判断一个元素出现在集合里的时候, 就要考虑哈希法, 但其实是牺牲空间换取时间 -> 额外的set, map来存放数据。

2023-08-15 02:20:12 59

原创 20230810 | Array Part2

Time Complexity: O(n) 右 上->下规定了左闭右开应该在每次保持一致。注意是找已知的array找最小个数 最开始做的时候想当然先排序了。指针法,左右两指针同时向中间走,更大的提前拿出,index改变。简单回忆quick sort。

2023-08-13 03:10:40 16

原创 20230809 | Array part1

经典Binary search,注意区分开闭区间对取值的影响,后续算法题会需要考虑。使用二分法找到target,然后分别向前先后一直找到边界。注意跳出循环时right > left。用两次二分法找到左右边界。新建count指针划数组。

2023-08-10 00:00:07 207 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除