- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 奇偶链表
lc 328. 奇偶链表Description给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL...
2020-04-18 01:15:18
214
原创 生命游戏
lc 289. 生命游戏Description根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活...
2020-04-18 00:07:18
293
原创 顺时针打印矩阵
面试题29. 顺时针打印矩阵Description输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11...
2020-04-17 17:19:58
122
原创 旋转数组(三次倒置)
lc 189. 旋转数组Description给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示...
2020-04-17 16:38:51
314
原创 翻转单词顺序
面试题58 - I. 翻转单词顺序Description输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello...
2020-04-17 16:08:55
121
原创 调整数组顺序使奇数位于偶数前面
面试题21. 调整数组顺序使奇数位于偶数前面Description输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。来源:力扣(LeetCode)链接:https://leetcode-cn.com/...
2020-04-17 15:57:57
122
原创 丑数 II
lc 264. 丑数 IIDescription编写一个程序,找出第 n 个丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明: 1 是丑数。n 不超过1690。来源:力扣(LeetCode)链接:https://leetcode-...
2020-04-17 15:42:08
110
原创 搜索旋转排序数组
lc 33. 搜索旋转排序数组Description假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入:...
2020-04-17 15:08:30
72
原创 二路归并排序
二路归并排序Description基本思想:二路归并排序主要运用了“分治算法”,分治算法就是将一个大的问题划分为n个规模较小而结构相似的子问题。二路归并排序主旨是“分解”与“归并”:分:1.一直分两组,分别对两个数组进行排序(根据上层对下层在一组的数据通过临时数组排序,再将有序数组挪回上层数组中)。2. 循环第一步,直到划分出来的“小组”只包含一个元素,只有一个元素的数组默...
2020-04-17 14:35:46
157
原创 搜索插入位置
lc 35. 搜索插入位置Description给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输...
2020-04-17 14:29:58
110
原创 除自身以外数组的乘积
lc 238. 除自身以外数组的乘积Description给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6] 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都...
2020-04-17 13:09:59
110
1
原创 两个数组的交集
lc 349. 两个数组的交集Description给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。...
2020-04-17 12:50:24
133
原创 四数之和
lc 18. 四数之和Description给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 tar...
2020-04-17 11:56:35
96
原创 三数之和
lc 15. 三数之和Description给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-...
2020-04-17 11:34:34
66
原创 数组中的第K个最大元素
lc 215. 数组中的第K个最大元素Description在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 ...
2020-04-17 01:14:35
305
原创 寻找重复数
lc 287. 寻找重复数Description给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外...
2020-04-16 17:18:53
86
原创 投票排序
华为笔试 投票排序Description输入:Tom,Tom,Lucy,Lucy,Jack输出:Lucy解释:由于Tom和Lucy的得票数一样,但是a>b>c,A>B>C,Tom>Tomy;由于L>T,所以Lucy为第一。输入:Tom,Tom,Lucy输出:TomSolutionimport java.util.ArrayList;impo...
2020-04-16 17:12:33
743
原创 移动零
lc 283. 移动零Description给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...
2020-04-16 17:06:37
75
原创 经典算法思路整理
经典算法思路整理数组字符串数字链表二叉树排列组合DP堆、栈、快排其他数组一个简单的表格是这么创建的:DescriptionSolution数组重复数hashmap、排序、二分变形0放到数组尾双指针、冒泡集合交集哈希、排序除自身以外数组的乘积乘积=当前数左边的乘积*当前数右边的乘积搜索数字在有序数组插入位置二分旋转数组查找两次二分...
2020-04-11 21:13:18
335
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人