Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 1030. 距离顺序排列矩阵单元格
题目简介:给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。 另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。 返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2,c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。) 示例 1: 123输入:R = 1, C = 2, r0 = 0, c0 = 0输出:[[0,0],[0,1]]解释:...
Leetcode 406. 根据身高重建队列
题目简介:假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对 (h, k) 表示,其中 h 是这个人的身高,k 是应该排在这个人前面且身高大于或等于 h 的人数。 例如:[5,2] 表示前面应该有 2 个身高大于等于 5 的人,而 [5,0] 表示前面不应该存在身高大于等于 5 的人。 编写一个算法,根据每个人的身高 h 重建这个队列,使之满足每个整数对 (h, k) 中对人数 k 的要求。 示例: 12输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]...
Leetcode 283. 移动零
题目简介:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 12输入: [0,1,0,3,12]输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 思路:思路很简单,就是从后往前遍历,遇到0时,便让其不断下沉,直至遇见0为止。 这样便可以保证其他元素的相对位置不发生改变。 代码如下:1234567891011121314151617181920212223class Solution {public: void moveZeroes(vector<int&g...
Leetcode 147. 对链表进行插入排序
题目简介:对链表进行插入排序。 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。 示例 1: 12输入: 4->2->1->3输出: 1->2->3->4 示例 2: 12输入: -1->5->3->4->0输出: -1->0->3->4->5 思路:每次在插入元素时,都从前往后找到正确的插入位置。 tip: 当待插入的元素为...
Leetcode 402. 移掉K位数字
题目简介:给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 123输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。 示例 2 : 123输入: num = "10200", k = 1输出: "200"解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前...
Leetcode 922. 按奇偶排序数组 II
题目简介:给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 123输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。 提示: 2 <= A.length <= 20000 A.length % 2 == 0 0 <= A[i] <= 1000 思路:首先将数组A整个赋值给res,并在其基础上修改res。 若当前位置的元...
Leetcode 328. 奇偶链表
题目简介:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 12输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL 示例 2: 12输入: 2->1->3->5->6->4->7->NULL 输出: 2->3->6-&...
Leetcode 1122. 数组的相对排序
题目简介:给你两个数组,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 示例: 12输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19] 提示: arr1.length, arr2.length <= 1000 0 <= arr1[i], arr2[...
Leetcode 31. 下一个排列
题目简介:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1231,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1 思路:这题看了题解以后感觉还是有点懵懵的,像是脑筋急转弯题一样,下面是个人的一点理解。 首先是从后往前遍历,找到第一个破坏升序的元素位置pos(即nums[pos ... ]为降序数组),由于降序是最大的序列,所以我们先将后面降序的数组翻转,...
Leetcode 127. 单词接龙
题目简介:给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 示例 1: 123456789输入:beginWord = "hit",endWord = "cog",...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili