刷题记录
I'mGoodAtBruteForce
混日子的研究生一枚
展开
-
LeetCode刷题记录 NO.1356二进制数字1排序
题目描述根据数字二进制下 1 的数目排序给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个 1 。[3,5,6] 有 2 个 1 。[7] 有 3 个 1 。按照原创 2020-11-06 14:51:58 · 139 阅读 · 0 评论 -
LeetCode刷题记录 NO.349 两个数组的交集
题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)题解利用集合来求解class Solution {public: vector<int> intersectio原创 2020-11-02 20:30:30 · 139 阅读 · 0 评论 -
LeetCode刷题记录 NO.234回文链表
题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)题解先用递归将一个指针移至链表尾,另一个指针指向链表头,同时向中间移动。class Solution {public: bool res = true; ListNode* cur; bool isP原创 2020-10-29 18:52:22 · 76 阅读 · 0 评论 -
LeetCode刷题记录 NO.1 两数之和
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)题解暴力解法class Solution {public: vector<in原创 2020-10-28 16:12:34 · 98 阅读 · 0 评论 -
LeetCode刷题记录NO.1207 独一无二的出现次数
题目描述给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:true提示:1 <原创 2020-10-28 10:18:45 · 128 阅读 · 0 评论 -
LeetCode刷题记录 NO.1365 有多少小于当前数字的数字
目录题目描述题解题目描述给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释:对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。原创 2020-10-26 16:37:38 · 96 阅读 · 0 评论 -
LeetCode刷题记录NO.763 划分字母区间
目录题目描述题解解题思路代码题目描述字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入:S = “ababcbacadefegdehijhklij”输出:[9,7,8]解释:划分结果为 “ababcbaca”, “defegde”, “hijhklij”。每个字母最多出现在一个片段中。像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的片段数较原创 2020-10-22 16:47:08 · 75 阅读 · 0 评论 -
LeetCode刷题记录 NO.844 比较退格字符
目录题目描述题解题目描述给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = “ab#c”, T = “ad#c”输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = “ab##”, T = “c#d#”输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = “a##c”, T = “#a#c”输出:true原创 2020-10-19 21:28:01 · 75 阅读 · 0 评论 -
LeetCode刷题记录 NO.19删除链表的倒数第N个节点
LeetCode刷题记录 NO.19删除链表的倒数第N个节点题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣解题思路最直接的思路,遍历链表,获取长度L,再遍历到第L-N+1个节点,将其删除,需要遍历两遍。如果只遍历一原创 2020-10-19 11:04:09 · 74 阅读 · 0 评论 -
LeetCode刷题记录 NO.116 填充右侧指针
填充每个节点的下一个右侧指针题目描述解题思路代码题目描述给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。来源:力扣解题思路运用递归,如原创 2020-10-15 19:09:10 · 67 阅读 · 0 评论 -
LeetCode刷题记录NO.24 交换链表节点
LeetCode刷题记录NO.24 交换链表节点题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100来源:LeetCode基本思路迭代直接观察可以知道,每交换一次链表,实际上涉及到四个数据的操作,如1->2->3->4交换之后为2->1->4->3具体步骤:原创 2020-10-13 15:17:07 · 86 阅读 · 0 评论 -
LeetCode刷题记录 NO.141&142 环形链表
LeetCode刷题记录 NO.141&142 环形链表题目概述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例:输入:head = [3,2,原创 2020-10-10 16:53:13 · 98 阅读 · 0 评论