摘要: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 阅读全文
posted @ 2019-03-14 22:45 zzas12345 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度 阅读全文
posted @ 2019-03-14 22:15 zzas12345 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()"思路:动态规划,只需要考虑两个有效的连续括号 阅读全文
posted @ 2019-03-14 21:30 zzas12345 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1, 阅读全文
posted @ 2019-03-14 20:33 zzas12345 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 示例 2: 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这 阅读全文
posted @ 2019-03-13 20:59 zzas12345 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 思路:移除就好了,没有技巧。 阅读全文
posted @ 2019-03-13 20:28 zzas12345 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 思路:水题,用一个res变量记录当前出现不同元素个数,然后直接在res位置,改写nums,遍历一次数组就可以完成。 阅读全文
posted @ 2019-03-13 20:15 zzas12345 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 思路:1;递归;直接翻转就好了,代码简洁明了,但是链表过长可能会导致堆栈溢出。 2;如果要采用迭代,则额外需要两个指针和一个头结点来进行循环迭代, 阅读全文
posted @ 2019-03-13 20:13 zzas12345 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ]思路:深度优先搜索,加递归实现,如果有左括号存在,那么将左括号加入 阅读全文
posted @ 2019-03-13 19:36 zzas12345 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 思路1:仿照两数之和,不需要排序,但是会返回重复复的三元组,因此要去重,用标准库unique函数出 阅读全文
posted @ 2019-03-13 19:15 zzas12345 阅读(364) 评论(0) 推荐(0) 编辑