首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,374 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,986 阅读
3
gradle-5.4.1-all.zip下载
8,877 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,835 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,874 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
624
篇文章
累计收到
617
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
114
篇与
的结果
2022-08-17
268. 丢失的数字
给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 3:输入:nums = [9,6,4,2,3,5,7,0,1]输出:8解释:n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。示例 4:输入:nums = [0]输出:1解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。class Solution: def missingNumber(self, nums: List[int]) -> int: return set(range(len(nums) + 1)).difference(set(nums)).pop()来源:力扣(LeetCode)链接:https://leetcode.cn/problems/missing-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022年08月17日
208 阅读
0 评论
0 点赞
2022-08-16
56. 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]] 输出:[[1,6],[8,10],[15,18]] 解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2:输入:intervals = [[1,4],[4,5]] 输出:[[1,5]] 解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。提示:1 <= intervals.length <= 104intervals[i].length == 20 <= starti <= endi <= 104第一次提交(写的比较乱,然后也没通过):class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: a = set() for interval in intervals: for num in range(interval[0], interval[1] + 1): a.add(num) result = [[a.pop()]] for c in a: if (result[-1][-1] + 1) == c: result[-1].append(c) else: result[-1] = [result[-1][0], result[-1][-1]] result.append([c]) result[-1] = [result[-1][0], result[-1][-1]] return result官方答案:class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: intervals.sort(key=lambda x: x[0]) result = [] for interval in intervals: if not result or result[-1][1] < interval[0]: result.append(interval) else: result[-1][1] = max(result[-1][1], interval[1]) return result来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-intervals著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022年08月16日
153 阅读
0 评论
0 点赞
2022-08-11
48. 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]class Solution: def rotate(self, matrix: List[List[int]]) -> None: n = len(matrix) temp = matrix.copy() for i in range(n): col = [] for j in range(n): col.append(temp[n - j - 1][i]) matrix[i] = col来源:力扣(LeetCode)链接:https://leetcode.cn/problems/rotate-image著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022年08月11日
138 阅读
0 评论
1 点赞
2022-08-11
128. 最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9 提示:0 <= nums.length <= 105-109 <= nums[i] <= 109class Solution: def longestConsecutive(self, nums: List[int]) -> int: if not nums: return 0 nums = list(set(nums)) nums.sort() r, t = 1, 1 for index, num in enumerate(nums[:-1]): if nums[index + 1] - 1 == num: t += 1 else: if t > r: r = t t = 1 return max(r, t)来源:力扣(LeetCode)链接:https://leetcode.cn/problems/longest-consecutive-sequence著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022年08月11日
152 阅读
0 评论
0 点赞
2022-08-04
338. 比特位计数
给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。示例 1:输入:n = 2输出:[0,1,1]解释:0 --> 01 --> 12 --> 10示例 2:输入:n = 5输出:[0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --> 101 提示:0 <= n <= 105 进阶:很容易就能实现时间复杂度为 O(n log n) 的解决方案,你可以在线性时间复杂度 O(n) 内用一趟扫描解决此问题吗?你能不使用任何内置函数解决此问题吗?(如,C++ 中的 __builtin_popcount )class Solution: def countBits(self, n: int) -> List[int]: return [bin(i).count('1') for i in range(0, n + 1)]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/counting-bits著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022年08月04日
108 阅读
0 评论
0 点赞
2022-08-02
78. 子集
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]] 提示:1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素 互不相同class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: result = [[]] for num in nums: result = result + [[num] + i for i in result] return result来源:力扣(LeetCode)链接:https://leetcode.cn/problems/subsets著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2022年08月02日
128 阅读
0 评论
0 点赞
2022-08-02
1403. 非递增顺序的最小子序列
给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。注意,题目数据保证满足所有约束条件的解决方案是 唯一 的。同时,返回的答案应当按 非递增顺序 排列。示例 1:输入:nums = [4,3,10,9,8]输出:[10,9] 解释:子序列 [10,9] 和 [10,8] 是最小的、满足元素之和大于其他各元素之和的子序列。> 但是 [10,9] 的元素之和最大。示例 2:输入:nums = [4,4,7,6,7]输出:[7,7,6]解释:子序列 [7,7] 的和为 14 ,不严格大于剩下的其他元素之和(14 = 4 + 4 + 6)。因此,[7,6,7] 是满足题意的最小子序列。注意,元素按非递增顺序返回。示例 3:输入:nums = [6]输出:[6]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/minimum-subsequence-in-non-increasing-order著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution: def minSubsequence(self, nums: List[int]) -> List[int]: if len(nums) == 1: return nums nums.sort(reverse=True) result = [] sum_res = 0 sum_nums = sum(nums) for value in nums: sum_res += value result.append(value) if sum_res > sum_nums - sum_res: return result return result
2022年08月02日
107 阅读
0 评论
0 点赞
1
...
5
6
7
...
17