题目: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 思路: 进阶: 一个直接的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间 ...
题目:第 题:给定一个包含红色 白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色 白色 蓝色顺序排列。 此题中,我们使用整数 和 分别表示红色 白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 思路: 思路较简单,提示了进阶思路 进阶: 一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出 和 元素的个数,然后按照 的排序,重写 ...
2020-04-23 11:26 0 604 推荐指数:
题目: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 思路: 进阶: 一个直接的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间 ...
题目: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 思路: 是第54题的逆向过程 程序: class Solution ...
题目: 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 思路: 使用两个指针,然后控制好边界就可以了。 程序: class Solution ...
题目:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。 思路:第一个思路是创建一个锚点,这个锚点表示第一个正整数的出现的位置,然后再分情况来判断,结果程序无法通过所有的测试用例,第一个思路方法以后再实现 ...
题目: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 思路: 要求的时间复杂度为O(n),则只允许一次循环。 程序: class Solution: def longestConsecutive ...
题目: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 思路:贪心法和分而治之 程序1:贪心发 class Solution ...
题目: 最大数:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 思路: 根据字符串的特征使用类似冒泡排序的方式来将数组从大到小排序,最后构造结果就好。 程序: class Solution: def largestNumber(self, nums: List ...
题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 思路:与第11题的思路很像 程序: class Solution: def trap(self, height: List[int ...