摘要: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? 首先是O(n^2)的算法,就是用一个数组a来存储到某个位 阅读全文
posted @ 2018-07-26 13:08 onlyandonly 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 示例 2: 说明:你可以认为每种硬币的数量是无限的。 看到动态规划的题目真是头疼,思路还没打开。。。 这个排第一的算法,很 阅读全文
posted @ 2018-07-22 17:31 onlyandonly 阅读(960) 评论(2) 推荐(0) 编辑
摘要: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不 阅读全文
posted @ 2018-07-22 15:49 onlyandonly 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 示例 2: 一条动态规划下的题。然而我压根不知道动态规划是啥。。。一开始用的递归死算,TLE了,后来用了一个数组b来标记能否到达某个位置,通过了,也看 阅读全文
posted @ 2018-07-22 14:34 onlyandonly 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: 给定 target = 5,返回 true。 给定 target = 20,返回 fals 阅读全文
posted @ 2018-07-21 20:30 onlyandonly 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O 阅读全文
posted @ 2018-07-21 20:18 onlyandonly 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 示例 2: 将数组按照start进行排序,先把第一个区间扔进返回数组,然后遍历剩下的区间,如果该区间和返回数组尾部的区间重叠,就把它们合并,不然就把该区间扔进返回数组。 阅读全文
posted @ 2018-07-21 19:04 onlyandonly 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 示例 2: 二分查找的升级版。以searchBegin为例,当nums 阅读全文
posted @ 2018-07-21 13:23 onlyandonly 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 看到logN就想到二分查找,起初我是想判断 mid-1,mid,mid+1的,但这样太麻烦,而且容易出错。。。 其实只用判断mid 和mid+1即可。如果mid<mid+1 说明峰值肯定在[mid+1,r]里面,如果mid>mid+1,则峰值肯定在[l,mid]里面。 阅读全文
posted @ 2018-07-19 09:59 onlyandonly 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 示例 2: 说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 直接快排就过了。。。。用堆排序的话应该会更快 阅读全文
posted @ 2018-07-18 21:12 onlyandonly 阅读(145) 评论(0) 推荐(0) 编辑