leetcode
Master.Jiang
这个作者很懒,什么都没留下…
展开
-
比特位计数(计算二进制数中1的数目)
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/counting-bits解法一:动态规划用ans[i]表示数i中1的数目,i可以看成由i/2左移一位得到:当i为奇数时,左移一位补1;当i为偶数时,左移一位原创 2021-03-03 15:23:52 · 407 阅读 · 1 评论 -
leetcode-647. 回文子串(动态规划+中心扩展)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindromic-substrings给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”原创 2020-09-27 17:21:09 · 213 阅读 · 0 评论 -
leetcode-34. 在排序数组中查找元素的第一个和最后一个位置(binary_search、upper_bound、lower_bound函数的应用)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target原创 2020-09-25 22:13:05 · 171 阅读 · 0 评论 -
leetcode-31. 下一个排列(next_permutation函数的应用)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-permutation实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1分析:直接调用next_perm原创 2020-09-21 16:50:38 · 147 阅读 · 0 评论 -
leetcode-78. 子集(位运算求子集)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]分析:含有n个元素的集合共有(1<<n)个子集,在选取每一个元素的时候,注意到每一个元素只有两种状态——选与不原创 2020-09-20 23:00:37 · 145 阅读 · 0 评论 -
leetcode-315.计算右侧小于当前元素的个数
给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入:[5,2,6,1]输出:[2,1,1,0]解释: 5 的右侧有 2 个更小的元素 (2 和 1)2 的右侧仅有 1个更小的元素 (1)6 的右侧有 1 个更小的元素 (1)1 的右侧有 0 个更小的元素考查树状数组的应用。题意即求当前元素右侧且比当前元素小的元素个数,显然左侧元素的索引小于右侧元原创 2020-08-01 19:11:19 · 205 阅读 · 0 评论