红帝 发布的文章 - 第 22 页 - 网络编程与渗透技术笔记
首页
Search
1
Centos7.9系统如何换国内镜像源?
25 阅读
2
Java编程小练习题目
24 阅读
3
用Java编写九九乘法口诀表
20 阅读
4
PHP在线加密系统源码
18 阅读
5
全开源图床系统源码
17 阅读
Kali Linux
综合渗透注入
网站搭建与运维
编程开发
Java教程
Go教程
PHP教程
Python教程
MySQL
工具与脚本
网安竞赛
源码文件
漏洞百科
iAPP
登录
/
注册
找到
207
篇与
红帝
相关的结果
- 第 22 页
2024-05-13
LeetCode算法题:盛放最多水的容器
题目内容: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例 : 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 答案: def maxArea(height): left = 0 right = len(height) - 1 max_water = 0 while left < right: # 计算当前左右指针构成的容器的水量 area = min(height[left], height[right]) * (right - left) # 更新最大水量 max_water = max(max_water, area) # 移动指针 if height[left] < height[right]: left += 1 else: right -= 1 return max_water height = [1, 8, 6, 2, 5, 4, 8, 3, 7] print(maxArea(height)) # 输出应为 49
编程开发
Python教程
# 编程开发
红帝
1年前
0
5
0
2024-05-13
LeetCode算法题:移动零
题目内容: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 : 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 答案: def move_zeroes(nums): # 初始化一个指针指向非零元素的下一个位置 write_index = 0 # 遍历数组 for read_index in range(len(nums)): # 如果当前元素不是0 if nums[read_index] != 0: # 将当前元素放到write_index的位置 nums[write_index] = nums[read_index] # 将write_index向前移动一位 write_index += 1 # 遍历结束后,write_index之后的位置都应该是0 # 因为我们只需要保证非零元素在write_index之前,所以直接在后面填充0即可 for i in range(write_index, len(nums)): nums[i] = 0 nums = [0, 1, 0, 3, 12] move_zeroes(nums) print(nums) # 输出应该是 [1, 3, 12, 0, 0]
编程开发
Python教程
# 编程开发
红帝
1年前
0
5
0
2024-05-12
LeetCode算法题:最长连续序列
题目内容: 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 : 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 答案: def longestConsecutive(nums): if not nums: return 0 # 使用集合存储数组中的元素,以便进行快速查找 num_set = set(nums) longest_streak = 0 # 遍历集合中的每个元素 for num in num_set: # 如果当前数字的前一个数字已经在集合中,说明当前数字不是序列的起点 # 跳过它,因为我们已经处理过它作为序列的下一个数字 if num - 1 in num_set: continue # 计算当前数字所在序列的长度 current_num = num current_streak = 1 while current_num + 1 in num_set: current_num += 1 current_streak += 1 # 更新最长序列长度 longest_streak = max(longest_streak, current_streak) return longest_streak # 示例 nums = [100, 4, 200, 1, 3, 2] print(longestConsecutive(nums)) # 输出应为 4
编程开发
Python教程
# 编程开发
红帝
1年前
0
5
0
2024-05-12
LeetCode算法题:字母异位词分组
题目内容: 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 : 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat","tea"]] 题目答案: def groupAnagrams(strs): anagrams = {} for word in strs: # 对每个单词进行排序,然后作为字典的键 sorted_word = ''.join(sorted(word)) # 如果这个键已经存在于字典中,就将这个单词添加到对应的列表中 # 否则,创建一个新的列表,并将这个单词添加到其中 if sorted_word in anagrams: anagrams[sorted_word].append(word) else: anagrams[sorted_word] = [word] # 返回结果列表 return list(anagrams.values()) # 测试 strs = ["eat", "tea", "tan", "ate", "nat", "bat"] print(groupAnagrams(strs))
编程开发
Python教程
# 编程开发
红帝
1年前
0
10
0
2024-05-12
LeetCode算法题:两数之和
题目内容: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 输出:[1,2] 示例 3: 输入:nums = [3,3], target = 6 输出:[0,1] 提示: 2 <= nums.length <= 104 -109 <= nums[i] <= 109 -109 <= target <= 109 只会存在一个有效答案 答案: def twoSum(nums, target): # 创建一个字典,用于存储每个数对应的下标 num_dict = {} for i in range(len(nums)): # 计算当前数与目标数的差值 diff = target - nums[i] # 如果差值已经在字典中,说明找到了答案 if diff in num_dict: return [num_dict[diff], i] # 否则将当前数及其下标存入字典中 num_dict[nums[i]] = i # 如果没有找到答案,返回空列表 return [] nums = [2, 7, 11, 15] target = 9 result = twoSum(nums, target) print(result) # 输出 [0, 1] 力扣官方答案: class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i + 1, n): if nums[i] + nums[j] == target: return [i, j] return [] 作者:力扣官方题解 链接:https://leetcode.cn/problems/two-sum/solutions/434597/liang-shu-zhi-he-by-leetcode-solution/ 来源:力扣(LeetCode) 力扣官方答案改编版: class Solution: def twoSum(self, nums, target): n = len(nums) for i in range(n): for j in range(i + 1, n): if nums[i] + nums[j] == target: return [i, j] return [] nums = [2,7,15,11] target = 9 print(Solution().twoSum(nums,target)).
编程开发
Python教程
# 编程开发
红帝
1年前
0
4
0
上一页
1
...
21
22
23
...
42
下一页
易航博客