2020年4月25日
摘要: 题目: 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。 说明: 阅读全文
posted @ 2020-04-25 21:44 桌子哥 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。 思路: 思路1:使用函数;思路2:使用投票法 程序1:使用函数 class Solution: def majorityElement(self, 阅读全文
posted @ 2020-04-25 20:26 桌子哥 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 思路: 本题思路简单。 程序: class Solution: def summaryRanges(self, nums: List[int]) -> List[str]: length = len(nums) if length  阅读全文
posted @ 2020-04-25 19:49 桌子哥 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 题目: 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 思路: 这种情况下使用递归 程序: class Solution: def combinationSum3(self, 阅读全文
posted @ 2020-04-25 19:34 桌子哥 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。 进阶: 如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法 思路: 双指针+滑动窗口 在一个小科技公 阅读全文
posted @ 2020-04-25 19:07 桌子哥 阅读(3103) 评论(0) 推荐(0) 编辑
摘要: 题目: 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 说明: 你的解法应该 阅读全文
posted @ 2020-04-25 17:40 桌子哥 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。 说明: 这道题是 寻找旋转排序数组中的最小值 的延伸题目。 允许重复会影响算法的时间 阅读全文
posted @ 2020-04-25 17:20 桌子哥 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 思路: 思路1,用函数,这样感觉有点不厚道;思路2,用二分法 程序1: class 阅读全文
posted @ 2020-04-25 17:06 桌子哥 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 题目: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。 思路: 考虑数组中为负数的情况。 程序: class Solution: def maxProduct(self, nums: List[int]) -> int: length = len(n 阅读全文
posted @ 2020-04-25 16:18 桌子哥 阅读(1109) 评论(0) 推荐(0) 编辑