随笔分类 -  leetcode题集

自己做的leetcode的题
摘要:(Step2-500题)POJ训练计划+SGU 经过Step1-500题训练,接下来可以开始Step2-500题,包括POJ训练计划的298题和SGU前两章200题。需要1-1年半时间继续提高解决问题和编码实现能力,加油ACMer!任重道远 Step1-500题 UVaOJ+算法竞赛入门经典+挑战编 阅读全文
posted @ 2022-01-16 21:13 zhustarstar 阅读(42) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-12-09 19:40 zhustarstar 阅读(25) 评论(0) 推荐(0)
摘要:快速排序 归并排序 堆排序 阅读全文
posted @ 2021-11-20 17:43 zhustarstar 阅读(38) 评论(0) 推荐(0)
摘要:【分析题目】 一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶。 【解题思路】 【动态规划】 自己写的 public int climbStairs2(int n) { if (n == 0) return 1; 阅读全文
posted @ 2021-07-25 19:06 zhustarstar 阅读(48) 评论(0) 推荐(0)
摘要:描述 有一个机器人的位于一个 m × nm×n 个网格左上角。 机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。 问有多少条不同的路径? n和m均不超过100且答案保证在32位整数可表示范围内。 【分析题目】 一个棋子从左上角(0,0)按照从向下或者向右的方向,到达右下角(m,n 阅读全文
posted @ 2021-07-25 17:51 zhustarstar 阅读(44) 评论(0) 推荐(0)
摘要:【题目】你有三种硬币,分别面值2元,5元和7元,每种硬币都有足够多买一本书需要27元。如何用最少的硬笔组合正好付清?【动态规划的四部分】【1、确定状态】最后一步化成子问题:状态f(X)=用多少枚硬币能拼出子问题X【2、状态转移方程】【3、初始条件和边界条件】【4、计算顺序】从已有数据开始计算 阅读全文
posted @ 2021-07-25 14:54 zhustarstar 阅读(109) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-07-25 12:51 zhustarstar 阅读(62) 评论(0) 推荐(0)
摘要:实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4输出: 2示例 2: 输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将 阅读全文
posted @ 2021-07-17 20:39 zhustarstar 阅读(247) 评论(0) 推荐(0)
摘要:二分查找1.目标函数单调性(单调递增或者递减)2.存在上下界3.能够通过索引访问代码模板left,right - 0,len(array)-1while left<=right mid = (left+right)/2 if array[mid] == target: #find the targe 阅读全文
posted @ 2021-07-17 18:54 zhustarstar 阅读(34) 评论(0) 推荐(0)
摘要:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 阅读全文
posted @ 2021-07-14 22:42 zhustarstar 阅读(40) 评论(0) 推荐(0)
摘要:这个题给我的感觉就是,以目标为导向,可能一个做法有很多实现方式。但是你可以做到以目标为导向。越复杂的逻辑判断,不如一步步的计算,落实到一步步,把逻辑计算简单化,这是符合循环的思想。就是在想做这步的时候,你可以有几种方法。 机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发, 阅读全文
posted @ 2021-07-13 12:53 zhustarstar 阅读(233) 评论(0) 推荐(0)
摘要:字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列: 序列中第一个单词是 beginWord 。序列中最后一个单词是 endWord 。每次转换只能改变一个字母。转换过程中的中间单词必须是字典 wordList 中的单词。给你两个单词 阅读全文
posted @ 2021-06-25 17:52 zhustarstar 阅读(76) 评论(0) 推荐(0)
摘要:一条基因序列由一个带有8个字符的字符串表示,其中每个字符都属于 "A", "C", "G", "T"中的任意一个。 假设我们要调查一个基因序列的变化。一次基因变化意味着这个基因序列中的一个字符发生了变化。 例如,基因序列由"AACCGGTT" 变化至 "AACCGGTA" 即发生了一次基因变化。 与 阅读全文
posted @ 2021-06-24 16:24 zhustarstar 阅读(102) 评论(0) 推荐(0)
摘要:您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 解法一:宽度优先搜索 List<Integer> res = new ArrayList<>(); public List<Integer> largestValues(T 阅读全文
posted @ 2021-06-17 20:40 zhustarstar 阅读(38) 评论(0) 推荐(0)
摘要:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果: [ [3], [9,20], [15,7]] 解法一:宽度优先搜索(队列) jav 阅读全文
posted @ 2021-06-15 22:33 zhustarstar 阅读(45) 评论(0) 推荐(0)
摘要:深度优先搜索DFS 递归版 深度优先搜索DFS 迭代版 广度优先搜索 阅读全文
posted @ 2021-06-15 20:41 zhustarstar 阅读(239) 评论(0) 推荐(0)
摘要:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce", 阅读全文
posted @ 2021-06-15 17:47 zhustarstar 阅读(72) 评论(0) 推荐(0)
摘要:Deque有三种用途:普通队列(一端进另一端出):Queue queue = new LinkedList()或Deque deque = new LinkedList()双端队列(两端都可进出)Deque deque = new LinkedList()堆栈Deque deque = new Li 阅读全文
posted @ 2021-06-15 16:34 zhustarstar 阅读(374) 评论(0) 推荐(0)
摘要:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:[3,2,3]输出:3示例 2: 输入:[2,2,1,1,1,2,2]输出:2 解法一:哈希表 public in 阅读全文
posted @ 2021-06-14 20:31 zhustarstar 阅读(35) 评论(0) 推荐(0)
摘要:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。 示例 1: 输入:x = 2.00000, n = 10输出:1024.00000示例 2: 输入:x = 2.10000, n = 3输出:9.26100示例 3: 输入:x = 2.00000, n = -2输出:0.250 阅读全文
posted @ 2021-06-14 15:57 zhustarstar 阅读(97) 评论(0) 推荐(0)