首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,307 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,904 阅读
3
gradle-5.4.1-all.zip下载
8,831 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,816 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,866 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
623
篇文章
累计收到
612
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
114
篇与
的结果
2023-10-13
17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。# @Time : 2023/10/13 00:00 # @Author : Lan # @File : 17. 电话号码的字母组合.py # @Software: PyCharm # @link : https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/ """ 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 """ from typing import List class Solution: key_value = [ "", "", "abc", "def", "ghi", "jkl", "nmo", "pqrs", "tuv", "wxyz" ] result = [] temp = [] def backtracking(self, digits, index): if index == len(digits): if self.temp: self.result.append(''.join(self.temp)) return letters = self.key_value[int(digits[index])] for i in range(len(letters)): self.temp.append(letters[i]) self.backtracking(digits, index + 1) self.temp.pop() def letterCombinations(self, digits: str) -> List[str]: self.result = [] self.backtracking(digits, 0) return self.result print(Solution().letterCombinations(''))
2023年10月13日
109 阅读
0 评论
0 点赞
2023-10-12
77. 组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]提示:1 <= n <= 201 <= k <= n# @Time : 2023/10/12 16:43 # @Author : Lan # @File : 77.组合.py # @Software: PyCharm """ 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 """ from typing import List class Solution: result = [] temp = [] def backtracking(self, n, k, start): if len(self.temp) == k: self.result.append(self.temp.copy()) else: for i in range(start, n - (k - len(self.temp)) + 2): self.temp.append(i) self.backtracking(n, k, i + 1) self.temp.pop() def combine(self, n: int, k: int) -> List[List[int]]: self.result = [] if n == k: return [[i for i in range(1, n + 1)]] self.backtracking(n, k, 1) return self.result print(Solution().combine(4, 2))
2023年10月12日
128 阅读
0 评论
0 点赞
2023-09-25
283. 移动零
移动零已解答简单相关标签相关企业提示给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]提示:1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1进阶:你能尽量减少完成的操作次数吗?class Solution: def get_zero(self, slow, l_n, nums): for t in range(slow, l_n): if nums[t] == 0: return t def moveZeroes(self, nums: List[int]) -> None: fast, slow, l_n = 1, 0, len(nums), slow = self.get_zero(slow, l_n, nums) if slow is not None: while fast < l_n: if nums[fast] != 0 and fast > slow and slow is not None: nums[slow], nums[fast] = nums[fast], nums[slow] slow = self.get_zero(slow, l_n, nums) fast += 1
2023年09月25日
109 阅读
0 评论
0 点赞
2023-09-20
189. 轮转数组
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释: 向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]提示:1 <= nums.length <= 105-231 <= nums[i] <= 231 - 10 <= k <= 105进阶:尽可能想出更多的解决方案,至少有 三种 不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ temp = [i for i in nums] l_n = len(nums) for index, num in enumerate(temp): nums[(index + k) % l_n] = num
2023年09月20日
81 阅读
0 评论
0 点赞
2023-09-15
13. 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。给定一个罗马数字,将其转换成整数。示例 1:输入: s = "III"输出: 3示例 2:输入: s = "IV"输出: 4示例 3:输入: s = "IX"输出: 9示例 4:输入: s = "LVIII"输出: 58解释: L = 50, V= 5, III = 3.示例 5:输入: s = "MCMXCIV"输出: 1994解释: M = 1000, CM = 900, XC = 90, IV = 4.提示:1 <= s.length <= 15s 仅含字符 ('I', 'V', 'X', 'L', 'C', 'D', 'M')题目数据保证 s 是一个有效的罗马数字,且表示整数在范围 [1, 3999] 内题目所给测试用例皆符合罗马数字书写规则,不会出现跨位等情况。IL 和 IM 这样的例子并不符合题目要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。关于罗马数字的详尽书写规则,可以参考 罗马数字 - Mathematics 。class Solution: lm2nm = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000, } def romanToInt(self, s: str) -> int: result = 0 for i, v in enumerate(s): n = self.lm2nm.get(v) if i > 0: if s[i - 1] == 'I': if v == 'V': result += 3 elif v == 'X': result += 8 else: result += n elif s[i - 1] == 'X': if v == 'L': result += 30 elif v == 'C': result += 80 else: result += n elif s[i - 1] == 'C': if v == 'D': result += 300 elif v == 'M': result += 800 else: result += n else: result += n else: result += n return result
2023年09月15日
78 阅读
0 评论
0 点赞
2023-09-15
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: index, res, min_len = 0, "", min([len(s) for s in strs]), for i in range(min_len): temp = '' for j in strs: if temp == '': temp = j[i] elif j[i] != temp: return res res += temp return res
2023年09月15日
95 阅读
0 评论
0 点赞
2023-09-14
28. 找出字符串中第一个匹配项的下标 双指针
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。示例 1:输入:haystack = "sadbutsad", needle = "sad"输出:0解释:"sad" 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0 。示例 2:输入:haystack = "leetcode", needle = "leeto"输出:-1解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1 。提示:1 <= haystack.length, needle.length <= 104haystack 和 needle 仅由小写英文字符组成class Solution: def strStr(self, haystack: str, needle: str) -> int: fast, slow = 0, 0 while fast < len(haystack) and slow < len(needle): if haystack[fast] == needle[slow]: fast += 1 slow += 1 else: fast = fast - slow + 1 slow = 0 if slow == len(needle): return fast - slow return -1
2023年09月14日
82 阅读
0 评论
0 点赞
1
2
...
17