首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,372 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,983 阅读
3
gradle-5.4.1-all.zip下载
8,874 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,834 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,874 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
624
篇文章
累计收到
617
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
114
篇与
的结果
2023-02-20
【Hot100】【一般】3. 无重复字符的最长子串
题目给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 提示:0 <= s.length <= 5 * 104s 由英文字母、数字、符号和空格组成来源:力扣(LeetCode)链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法class Solution: def lengthOfLongestSubstring(self, s: str) -> int: if not s: return 0 l, t, slow, fast = 0, set(), 0, 0 while slow < len(s) and fast < len(s): if s[fast] not in t: t.add(s[fast]) fast += 1 else: t = {s[slow]} slow += 1 fast = slow l = len(t) if len(t) > l else l return l
2023年02月20日
96 阅读
2 评论
0 点赞
2023-02-19
【周赛】【简单】6362. 合并两个二维数组 - 求和法
题目给你两个 二维 整数数组 nums1 和 nums2.nums1[i] = [idi, vali] 表示编号为 idi 的数字对应的值等于 vali 。nums2[i] = [idi, vali] 表示编号为 idi 的数字对应的值等于 vali 。每个数组都包含 互不相同 的 id ,并按 id 以 递增 顺序排列。请你将两个数组合并为一个按 id 以递增顺序排列的数组,并符合下述条件:只有在两个数组中至少出现过一次的 id 才能包含在结果数组内。每个 id 在结果数组中 只能出现一次 ,并且其对应的值等于两个数组中该 id 所对应的值求和。如果某个数组中不存在该 id ,则认为其对应的值等于 0 。返回结果数组。返回的数组需要按 id 以递增顺序排列。 示例 1:输入:nums1 = [[1,2],[2,3],[4,5]], nums2 = [[1,4],[3,2],[4,1]]输出:[[1,6],[2,3],[3,2],[4,6]]解释:结果数组中包含以下元素:id = 1 ,对应的值等于 2 + 4 = 6 。id = 2 ,对应的值等于 3 。id = 3 ,对应的值等于 2 。id = 4 ,对应的值等于5 + 1 = 6 。示例 2:输入:nums1 = [[2,4],[3,6],[5,5]], nums2 = [[1,3],[4,3]]输出:[[1,3],[2,4],[3,6],[4,3],[5,5]]解释:不存在共同 id ,在结果数组中只需要包含每个 id 和其对应的值。提示:<= nums1.length, nums2.length <= 200nums1[i].length == nums2[j].length == 2<= idi, vali <= 1000数组中的 id 互不相同数据均按 id 以严格递增顺序排列解法今天早上刚好看见有个周赛,于是参与了一下,我还是太菜了,只做了一个半。class Solution: def mergeArrays(self, nums1: List[List[int]], nums2: List[List[int]]) -> List[List[int]]: fast, slow = 0, 0 while fast < len(nums1) and slow < len(nums2): if nums1[fast][0] < nums2[slow][0]: fast += 1 elif nums1[fast][0] > nums2[slow][0]: nums1.insert(fast, nums2[slow]) slow += 1 else: nums1[fast][1] += nums2[slow][1] slow += 1 return nums1 + nums2[slow:] if slow < len(nums2) else nums1
2023年02月19日
99 阅读
0 评论
0 点赞
2023-02-09
【简单】144. 二叉树的前序遍历
题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3] 输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100进阶:递归算法很简单,你可以通过迭代算法完成吗?解法其实这种题目不难,我感觉烦的是数据结构,题目里面给个list,搞得我不好测试。比如之前的链表,非得让我自己写个list和链表的转换才好进行调试。from typing import Optional, List from alo.common import TreeNode class Solution: def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]: ans = [] stack = [root] while stack: node = stack.pop() if node: ans.append(node.val) if node.right: stack.append(node.right) if node.left: stack.append(node.left) return ans if __name__ == '__main__': s = Solution() s.preorderTraversal(TreeNode(1, None, TreeNode(2, TreeNode(3), None)))
2023年02月09日
76 阅读
0 评论
0 点赞
2023-02-07
【周赛】【简单】2558. 从数量最多的堆取走礼物
给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作:选择礼物数量最多的那一堆。如果不止一堆都符合礼物数量最多,从中选择任一堆即可。选中的那一堆留下平方根数量的礼物(向下取整),取走其他的礼物。返回在 k 秒后剩下的礼物数量。示例 1:输入:gifts = [25,64,9,4,100], k = 4输出:29解释: 按下述方式取走礼物:在第一秒,选中最后一堆,剩下 10 个礼物。接着第二秒选中第二堆礼物,剩下 8 个礼物。然后选中第一堆礼物,剩下 5 个礼物。最后,再次选中最后一堆礼物,剩下 3 个礼物。最后剩下的礼物数量分别是 [5,8,9,4,3] ,所以,剩下礼物的总数量是 29 。示例 2:输入:gifts = [1,1,1,1], k = 4输出:4解释:在本例中,不管选中哪一堆礼物,都必须剩下 1 个礼物。 也就是说,你无法获取任一堆中的礼物。 所以,剩下礼物的总数量是 4 。提示:1 <= gifts.length <= 1031 <= gifts[i] <= 1091 <= k <= 103from typing import List class Solution: def pickGifts(self, gifts: List[int], k: int) -> int: while k > 0: k -= 1 m = max(gifts) gifts[gifts.index(m)] = int(pow(m, 0.5)) return sum(gifts) print(Solution().pickGifts([25, 64, 9, 4, 100], 4))
2023年02月07日
93 阅读
0 评论
0 点赞
2023-02-01
【每日一题】【简单】2325. 解密消息
题目给你字符串 key 和 message ,分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下:使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。将替换表与普通英文字母表对齐,形成对照表。按照对照表 替换 message 中的每个字母。空格 ' ' 保持不变。例如,key = "happy boy"(实际的加密密钥会包含字母表中每个字母 至少一次),据此,可以得到部分对照表('h' -> 'a'、'a' -> 'b'、'p' -> 'c'、'y' -> 'd'、'b' -> 'e'、'o' -> 'f')。返回解密后的消息。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/decode-the-message著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法class Solution: def decodeMessage(self, key: str, message: str) -> str: d, c = {}, 0 for i in key: if i != ' ' and i not in d: d[i] = chr(ord('a') + c) c += 1 return ''.join([d.get(i, ' ') for i in message])
2023年02月01日
101 阅读
0 评论
0 点赞
2023-01-31
【每日一题】【简单】2319. 判断矩阵是否是一个 X 矩阵
题目如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 :矩阵对角线上的所有元素都 不是 0矩阵中所有其他元素都是 0给你一个大小为 n x n 的二维整数数组 grid ,表示一个正方形矩阵。如果 grid 是一个 X 矩阵 ,返回 true ;否则,返回 false 。 示例 1:输入:grid = [[2,0,0,1],[0,3,1,0],[0,5,2,0],[4,0,0,2]] 输出:true 解释:矩阵如上图所示。 X 矩阵应该满足:绿色元素(对角线上)都不是 0 ,红色元素都是 0 。 因此,grid 是一个 X 矩阵。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/check-if-matrix-is-x-matrix著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法暴力破解题目很简单,就是找规律的题目class Solution: def checkXMatrix(self, grid: List[List[int]]) -> bool: count = len(grid) for row_index, row in enumerate(grid): for col_index, col in enumerate(row): if row_index == col_index or (count - row_index - 1) == col_index: if col == 0: return False else: if col != 0: return False return True
2023年01月31日
84 阅读
0 评论
0 点赞
2023-01-30
【每日一题】【中等】1669. 合并两个链表
题目给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。下图中蓝色边和节点展示了操作后的结果:请你返回结果链表的头指针。示例 1:输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]输出:[0,1,2,1000000,1000001,1000002,5]解释:我们删除 list1 中下标为 3 和 4 的两个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。示例 2:输入:list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]输出:[0,1,1000000,1000001,1000002,1000003,1000004,6]解释:上图中蓝色的边和节点为答案链表。提示:3 <= list1.length <= 1041 <= a <= b < list1.length - 11 <= list2.length <= 104通过次数31,394提交次数40,952来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-in-between-linked-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法自己写的,顺序法class Solution: def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode: index = 0 temp = ListNode(0) result = temp while list1: if index == a: while list2: result.next = list2 result = result.next list2 = list2.next elif index < a or index > b: result.next = list1 result = result.next index += 1 list1 = list1.next return temp.next
2023年01月30日
77 阅读
0 评论
0 点赞
1
2
3
...
17