随笔分类 -  Leetcode-数组

1 2 3 4 下一页
Leetcode练习(Python):数组类:第238题:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
摘要:题目: 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。 说明: 阅读全文
posted @ 2020-04-25 21:44 桌子哥 阅读(348) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第229题:给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。
摘要:题目: 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。 思路: 思路1:使用函数;思路2:使用投票法 程序1:使用函数 class Solution: def majorityElement(self, 阅读全文
posted @ 2020-04-25 20:26 桌子哥 阅读(780) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第228题:给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。
摘要:题目: 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 思路: 本题思路简单。 程序: class Solution: def summaryRanges(self, nums: List[int]) -> List[str]: length = len(nums) if length  阅读全文
posted @ 2020-04-25 19:49 桌子哥 阅读(635) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第216题:找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。
摘要:题目: 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 思路: 这种情况下使用递归 程序: class Solution: def combinationSum3(self, 阅读全文
posted @ 2020-04-25 19:34 桌子哥 阅读(514) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第209题:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。
摘要:题目: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。 进阶: 如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法 思路: 双指针+滑动窗口 在一个小科技公 阅读全文
posted @ 2020-04-25 19:07 桌子哥 阅读(3159) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第162题:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。
摘要:题目: 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 说明: 你的解法应该 阅读全文
posted @ 2020-04-25 17:40 桌子哥 阅读(827) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第154题:假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。
摘要:题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。 说明: 这道题是 寻找旋转排序数组中的最小值 的延伸题目。 允许重复会影响算法的时间 阅读全文
posted @ 2020-04-25 17:20 桌子哥 阅读(429) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第153题:假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。
摘要:题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 思路: 思路1,用函数,这样感觉有点不厚道;思路2,用二分法 程序1: class 阅读全文
posted @ 2020-04-25 17:06 桌子哥 阅读(486) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第152题:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。
摘要:题目: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。 思路: 考虑数组中为负数的情况。 程序: class Solution: def maxProduct(self, nums: List[int]) -> int: length = len(n 阅读全文
posted @ 2020-04-25 16:18 桌子哥 阅读(1131) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第219题:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。
摘要:题目: 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。 思路: 使用哈希就很简单了。 程序: class Solution: def containsNearbyDuplica 阅读全文
posted @ 2020-04-24 16:41 桌子哥 阅读(576) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第217题:给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
摘要:题目: 给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 思路: 题目思路简单。 程序: class Solution: def containsDuplicate(self, nums: List[ 阅读全文
posted @ 2020-04-24 16:01 桌子哥 阅读(2239) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第167题:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。
摘要:题目: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且 阅读全文
posted @ 2020-04-24 15:55 桌子哥 阅读(678) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第189题:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
摘要:题目: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的 原地 算法。 思路: 本题思路简单。 程序: class Solution: def rotate(self, 阅读全文
posted @ 2020-04-24 15:36 桌子哥 阅读(1121) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第169题:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。
摘要:题目: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 思路: 使用哈希非常方便 程序: class Solution: def majorityElement(self, nums 阅读全文
posted @ 2020-04-24 15:20 桌子哥 阅读(1551) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第128题:给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。
摘要:题目: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 思路: 要求的时间复杂度为O(n),则只允许一次循环。 程序: class Solution: def longestConsecutive(self, nums: List[int]) -> int: 阅读全文
posted @ 2020-04-24 14:22 桌子哥 阅读(1262) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第106题:根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。
摘要:题目: 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 思路: 与第105题类似,区别是前序遍历一开始找的是左子树的结点,后续遍历一开始找的是右子树的结点,因为从后面开始找数字。 程序: # Definition for a binary tree node. # 阅读全文
posted @ 2020-04-24 13:45 桌子哥 阅读(238) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第105题:根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。
摘要:题目: 第105题:根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 思路: 使用递归,练习过很多次了 程序: # Definition for a binary tree node. # class TreeNode: # def __init__(self, x 阅读全文
posted @ 2020-04-24 13:30 桌子哥 阅读(280) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第90题:给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。
摘要:题目: 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 思路: 与第78题思路一样,用迭代法,对重复的数据进行判断再进行操作就可以。 程序: class Solution: def subsetsWithDup(self, nums: 阅读全文
posted @ 2020-04-24 13:04 桌子哥 阅读(602) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第85题:给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
摘要:题目: 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 思路: 使用head和tail来构建以某点为基准的矩形的宽,使用height来定义以某点为基准的矩形的高。 程序: class Solution: def maximalRectangle(self,  阅读全文
posted @ 2020-04-24 10:36 桌子哥 阅读(3301) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):数组类:第84题:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。
摘要:题目: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 思路: 自己想的方法类似于接雨水的问题,但是计算量在有的例子的时候太大,超时了,参考的别人的方法,就是使用栈和哨兵的思路,这个思路的程序设计的很巧妙。 程 阅读全文
posted @ 2020-04-23 18:55 桌子哥 阅读(946) 评论(0) 推荐(0) 编辑

1 2 3 4 下一页