leetcode
文章平均质量分 74
一位小白
这个作者很懒,什么都没留下…
展开
-
leetcode报数题
报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二&qu原创 2018-04-18 13:51:44 · 2417 阅读 · 1 评论 -
回文链表
回文链表请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?这个题目我们需要注意的是时间复杂度和空间复杂度,我的想法是第一步:遍历链表,知道链表的长度;第二步:就地逆至前一半链表,使用两个指针,分别从头比较每一半的链表数...原创 2018-06-20 16:05:01 · 225 阅读 · 0 评论 -
旋转图像
给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]对于这一题,算...原创 2018-05-31 21:37:00 · 142 阅读 · 0 评论 -
单链表的就地逆置
转载自 https://blog.csdn.net/v_xchen_v/article/details/53067448 单链表的就地逆置是指辅助空间O(1)的逆置方法,有两种方法:普通循环(头插法重新建立带头节点的新链表)和递归。下面我们详细介绍这两种方法:方法一:头插法算法思想:逆置链表初始为空,表中节点从原链表中依次“删除”,再逐个插入逆置链表的表头(即“头插”到逆置链表中),使它成为逆置...转载 2018-06-07 18:25:18 · 29210 阅读 · 18 评论 -
有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?针对这题,我还是选...原创 2018-05-30 14:08:59 · 1259 阅读 · 3 评论 -
字符串中的第一个唯一字符 C++
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。这个时候题目没有要求是多少时间复杂度,并且字符串中也只有小写字母,暂时不考虑大写字母;初步想法是两次遍历找到字符串中重复的字符;然后动态申请一个与字符串大小一样的数组;将出现重复的位置标1;最后寻找数组中第一个0的位置就行;具体的代码如下:#include<iostream>#include<...原创 2018-05-30 13:36:34 · 2500 阅读 · 1 评论 -
实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出...原创 2018-06-05 14:15:01 · 2475 阅读 · 0 评论 -
旋转数组
旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] ...原创 2018-05-22 13:19:21 · 358 阅读 · 0 评论 -
删除倒数第n个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解题过程:1:注意在leetcode里这道题没有设置头节点,所以设置了myhead作为头节点;...原创 2018-04-18 14:09:07 · 288 阅读 · 0 评论 -
leetcode最后一个单词长度
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5解题过程:巧用两个bool#include<iostream>#include<string>using namespace std;class ...原创 2018-04-18 13:57:24 · 513 阅读 · 0 评论 -
跳跃游戏
问题:给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数的值表示你从这个位置可以跳跃的最大长度。计算如何以最少的跳跃次数跳到最后一个数。例如: 给定一个数组 A = [2,3,1,1,4]跳到最后一个索引的最小跳跃数是 2。(从索引 0 跳到 1 跳1步,然后跳3步到最后一个索引。)#include<iostream>#include<vector&...原创 2018-04-12 10:30:07 · 402 阅读 · 0 评论 -
leetcode最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。在本题中,我想到的两种方法,一种是普通的枚举法,时间复杂度为o(n^2),还有一种...原创 2018-07-13 11:22:22 · 271 阅读 · 0 评论