LeetCode
文章平均质量分 57
CSU_THU_SUT
THU研究僧,研究方向:AI安全 模糊测试 隐私计算。曾在滴滴国际化产品技术部,长亭科技云原生安全项目组实习。
关注我,一起变强!
展开
-
解决所有二叉树路径问题
解决Leetcode所有二叉树路径问题!原创 2022-09-02 17:19:17 · 187 阅读 · 0 评论 -
动态规划专栏
动态规划专题,由道及术原创 2022-07-28 15:52:05 · 167 阅读 · 0 评论 -
华为笔试4.20记录
春招惨痛,目前仍颗粒无收。做了阿里、字节、华为的笔试,除了字节是LeetCode风格,阿里华为都偏向ACM模式,而这正是我不熟悉的。前车之鉴,后事之师,教训如被人接受,此经验可贵十倍。因此记录下笔试题目。1、新员工的答题情况(100分)新员工入职公司,参加考试,其中判断题10道(每题2分),单选题10道(每题4分),多选题5道(每题8分)。只能顺序作答,答完题不知道对错,答对得分,答错不得分。答错累计三道,则终止考试。输入考试结果分数,输出答题可能情况个数。补充:关于回溯和DFS在具体的做题.原创 2022-04-21 19:58:45 · 1229 阅读 · 4 评论 -
LeetCode a Day(十一)——剑指offer16.数值的整数次方
剑指offer16.数值的整数次方题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例1:输入:x = 2.00000,n = 10输出:1024.00000我的第一反应,卧槽这也太简单了吧,这玩意也能做面试题?但题目简单,要考虑的东西可不少,而且还都是平时容易忽视的点,因此打算写这篇博客记录一下。魔鬼藏在细节中(一)——int的范围Java中int类型的范围是[ -231,231-1 ],正是这小小的减一,让原创 2022-03-02 15:37:29 · 218 阅读 · 0 评论 -
LeetCode之道——有序数组中的搜索问题
斩题术有序数组中的搜索问题,首先想到 二分法 解决。下面以剑指offer中的相关题目进行实践,理论结合实际。剑指offer 53-I. 在排序数组中查找数字题目描述:统计一个数字在排序数组中出现的次数。示例1输入: nums = [5,7,7,8,8,10], target = 8输出: 2利用二分法思想解题对于有序数组,统计其中一个数字出现的次数,只要找到这个数字的左右边界即可。而左右边界的查找可以采用二分法,以右边界为例。给定数组 [5,7,7,8,8,10],targe原创 2021-08-18 16:28:32 · 384 阅读 · 0 评论 -
LeetCode a Day(十)——剑指offer 35.复杂链表的复制
剑指offer 35.复杂链表的复制题目描述:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]思路与解法(一)——哈希表大家看到输入输出的第一反应是啥?woc这不一原创 2021-08-15 22:58:59 · 93 阅读 · 0 评论 -
LeetCode a Day(九)——剑指offer 06.从头到尾打印链表
剑指offer 06.从头到尾打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例1:输入:head = [1,3,2]输出:[2,3,1]思路与解法(一)——栈栈的特点是先入后出,可以将链表从头结点到尾结点依次入栈,然后依次出栈,保存下来。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex原创 2021-08-14 23:48:49 · 133 阅读 · 0 评论 -
LRU算法——从原理到手撕
背景—页面置换操作系统中对物理内存的管理采取分页、多级页表的方式。当CPU访问的页面不在物理内存时,便会产生一个缺页中断,请求操作系统将所缺页从磁盘调度到物理内存中。此时若物理内存已满,则需要从物理内存中选出一个页面,调度到磁盘中,然后将需要用到的页面放到物理内存中,实现页面置换。原创 2021-08-04 15:01:22 · 690 阅读 · 0 评论 -
LeetCode a Day(八)——113.路径总和II
题目描述:给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。示例1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]思路与解法(一)——回溯+DFS套用DFS模板,找到每一个叶子结点,求其路径和,对符合情况的进行记录,不符合情况进行回溯。class.原创 2021-03-13 15:46:04 · 340 阅读 · 0 评论 -
LeetCode a Day(七)——72.编辑距离
72.编辑距离题目描述:给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)思路与解法(一)——动态原创 2021-03-06 14:25:01 · 72 阅读 · 0 评论 -
LeetCode a Day(六)——剑指offer 09.用两个栈实现队列
剑指offer 09.用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例2:输入:[“CQue原创 2021-03-04 20:40:47 · 130 阅读 · 1 评论 -
LeetCode a Day(五)——1143.最长公共子序列
1143.最长公共子序列题目描述:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例1:输入:text1 = “a原创 2021-03-02 13:07:35 · 101 阅读 · 0 评论 -
LeetCode a Day(四)——56.合并区间
56.合并区间题目描述:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入:interval原创 2021-02-28 20:03:35 · 454 阅读 · 0 评论 -
LeetCode a Day(三)——1.两数之和
1.两数之和题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2:输入:nums = [3,2,4], target = 6原创 2021-02-20 14:53:29 · 62 阅读 · 0 评论 -
LeetCode a Day(二)——206.反转链表
206.反转链表题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路与解法(一)——迭代法迭代法的基本思路是:通过遍历链表,对链表的每一个结点执行“记录该结点(curr)的next结点为next(Node next = curr.next),再将该结点的next指向它的前一个结点(curr.next=prev),再将前一个结点更新为该结点(prev原创 2021-02-17 02:33:36 · 275 阅读 · 0 评论 -
LeetCode a Day(一)——300.最长递增子序列
300.最长递增自序列题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例1输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例2输入:nums = [0,1,0,3,2,3]输出:4思路与解法(1)——动原创 2021-02-10 21:33:01 · 199 阅读 · 0 评论