LeetCode
too cold
一个苦苦挣扎的通信小学生
展开
-
Leetcode:152. 乘积最大子数组
给你一个整数数组 nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。和最大子序列和非常相似,但是最大子序列和比较简单,只用去判断上一个为截至的和是大于0的还是小于0的,这个题目得加上正负的判断,得存着最小的和最大的。class...原创 2020-05-18 15:18:24 · 115 阅读 · 0 评论 -
Leetcode:84. 柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为[2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为10个单位。示例:输入: [2,1,5,6,2,3]输出: 10...原创 2020-05-18 10:55:05 · 101 阅读 · 0 评论 -
Leetcode:79. 单词搜索
给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCE...原创 2019-05-26 15:50:32 · 83 阅读 · 0 评论 -
Leetcode:33. 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2...原创 2019-05-16 11:30:12 · 71 阅读 · 0 评论 -
Leetcode:39. 组合总和
给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所求解集为...原创 2019-05-21 00:14:29 · 82 阅读 · 0 评论 -
Leetcode:31. 下一个排列
好久没有写博客了,今后博客得跟上了。31. 下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1...原创 2019-05-14 00:08:14 · 80 阅读 · 0 评论 -
Leetcode:4.寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位...原创 2019-04-14 23:32:39 · 130 阅读 · 0 评论 -
Leetcode:3.无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...原创 2019-04-09 19:20:10 · 138 阅读 · 0 评论 -
Leetcode:2.两数相加
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...原创 2019-04-09 15:51:20 · 108 阅读 · 0 评论 -
Leetcode:51.N皇后
代码的思路为传统的回溯法,代码思路与全排列以及求子集的思路基本相同,利用深度优先搜索(DFS)以及剪枝操作,N皇后问题的剪枝操纵为减去同对角线以及同列的枝。首先列出我刚开始写出的代码,能够成功运行,但是忽略一个十分重要的地方,导致运行时间和空间复杂度大大提升。class Solution {public: vector<vector<string>&...原创 2019-03-27 20:43:54 · 341 阅读 · 1 评论