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