自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guoziqing506的博客

记录学习点滴,享受算法乐趣

原创 二进制中有多少个1

题目描述:计算在一个 32 位的整数的二进制表式中有多少个 1. 样例:给定 32 (100000),返回 1;给定 5 (101),返回 2;给定 1023 (111111111),返回 9 很简单的题目,当然可以先对十进制的整数转换成二进制,再统计1的个数。 但是通过位运算(其实就是通过分析二...

2016-05-31 22:24:57

阅读数 1689

评论数 0

原创 最长无重复字符的子串

题目描述:给定一个字符串,请找出其中无重复字符的最长子字符串。 样例:例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。对于,"bbbbb",其无重复字符的最长子字符串为"b",长...

2016-05-31 09:51:19

阅读数 935

评论数 0

原创 有效回文串

题目描述:给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。 样例: "A man, a plan, a canal: Panama" 是一个回文。 "race a car" 不是一个回文。 之前判断过一个链表十分是回文链...

2016-05-29 09:29:01

阅读数 612

评论数 0

原创 两个字符串是变位词

题目描述:写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。 样例: 给出 s = "abcd",t="dcab",返回 true. 给出 s = "ab", t = "ab&q...

2016-05-28 23:40:25

阅读数 1797

评论数 0

原创 空格替换

题目描述:设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。 样例:对于字符串"Mr John Smith", 长度为 13,替换空格之后,参数中的字符...

2016-05-28 23:26:41

阅读数 643

评论数 1

原创 旋转字符串

题目描述:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例:对于字符串 "abcdefg". offset=0 => "abcdefg" offset=1 => "gabcdef" offse...

2016-05-28 21:06:45

阅读数 848

评论数 1

原创 翻转字符串

题目描述:给定一个字符串,逐个翻转字符串中的每个单词。 说明: 单词的构成:无空格字母构成一个单词 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个 样例:给出s = "the sky ...

2016-05-27 11:19:43

阅读数 461

评论数 0

原创 最长单词

题目描述:给一个词典,找出其中所有最长的单词。 样例:在词典 {   "dog",   "google",   "facebook",   "internationalization",   "...

2016-05-26 19:23:23

阅读数 930

评论数 1

原创 最后一个单词的长度

题目描述:给定一个字符串, 包含大小写字母、空格' ',请返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。 样例:给定 s = "Hello World",返回 5。 可以这样设计:从字符串最后开始往前找,找到第一个是字母的位置,从这个位...

2016-05-26 19:13:44

阅读数 412

评论数 0

原创 报数

题目描述:报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示: 1, 11, 21, 1211, 111221, ... 1 读作 "one 1" -> 11. 11 读作 "two 1s" -> 21. 21 读作 &...

2016-05-26 17:38:44

阅读数 1480

评论数 0

原创 比较字符串

题目描述:比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 样例:给出 A = "ABCD", B = "ACD",返回 true;给出 A = "ABCD", B = "AABC&qu...

2016-05-26 12:50:49

阅读数 853

评论数 0

原创 最长公共前缀

题目描述:给k个字符串,求出他们的最长公共前缀(LCP) 样例:在 "ABCD" "ABEF" 和 "ACEF" 中,  LCP 为 "A";在 "ABCDEFG", "ABCEFG&q...

2016-05-25 16:40:49

阅读数 3749

评论数 0

原创 判断字符串是否没有重复字符

题目描述:实现一个算法确定字符串中的字符是否均唯一出现 样例:给出"abc",返回 true;给出"aab",返回 false 挑战 :如果不使用额外的存储空间,你的算法该如何改变? 很简单的题目。最简单的方法是遍历数组,然后使用一个数据结构(列表,集...

2016-05-23 22:17:22

阅读数 2629

评论数 0

原创 主元素 II

题目描述:给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。 样例:给出数组[1,2,1,2,1,3,3] 返回 1 之前,有果一道“主元素”的问题(详见:点击打开链接),我们用的是“消去法”,因为主元素的个数大于元素总数的二分之一,可以保存只有一个元素的hash表...

2016-05-23 19:00:58

阅读数 1488

评论数 0

原创 跳跃游戏 II

题目描述:给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。 样例:给出数组A = [2,3,1,1,4],最少到达数组最后一个位置的跳跃次数是2(从数组下标0跳一步到数组下标1,然后跳3步到...

2016-05-23 17:15:17

阅读数 2369

评论数 0

原创 跳跃游戏

题目描述:给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。 样例: A = [2,3,1,1,4],返回 true. A = [3,2,1,0,4],返回 false. 加入第0位的值是i,那也就是说最远能...

2016-05-20 09:51:47

阅读数 990

评论数 0

原创 lintcode - 加油站

题目描述:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,...

2016-05-20 09:34:20

阅读数 373

评论数 0

原创 寻找缺失的数

题目描述:给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。 样例:N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。 之前,有一道找寻第一个丢失的正整数(详见:点击打开链接)的问题。当时用的是桶排序(详见:点击打开链接) 这题题呢,其实...

2016-05-17 15:03:42

阅读数 781

评论数 0

原创 买卖股票的最佳时机 II

题目描述:假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。 样例:给出一个数组样例[2,1,2,0,1], 返回 2 这道题比上一道题“买卖股票的最...

2016-05-17 14:15:40

阅读数 1931

评论数 0

原创 买卖股票的最佳时机

题目描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。 样例:给出一个数组样例 [3,2,3,1,2], 返回 1  换一个角度来思考这个问题,最大利润实际上就是每天的交易价格,减去上一天的价格所...

2016-05-17 11:34:55

阅读数 2744

评论数 0

原创 主元素

题目描述:给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。 样例:给出数组[1,1,1,1,2,2,2],返回 1 两种方法可以用来解决这个问题: 1. 中位数,因为主元素出现次数严格大于数组元素个数的二分之一,所以肯定是数组的中位数。而求取中位数的算法曾经...

2016-05-17 11:00:48

阅读数 2248

评论数 0

原创 删除排序数组中的重复数字 II

题目描述:跟进“删除重复数字”:如果可以允许出现两次重复将如何处理? 样例:给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]。 题目是上一道题“删除排序数组中的重复数字”(详见:点击打开链接)的延伸,现在要求可以保留出现两次的重复。 那也很简单...

2016-05-13 17:12:53

阅读数 567

评论数 0

原创 删除排序数组中的重复数字

题目描述:给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。 样例:给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。 主要是看清题目,题目要求是三点: 1. 返回去重...

2016-05-13 15:38:36

阅读数 1370

评论数 0

原创 恢复旋转排序数组

题目描述:给定一个旋转排序数组,在原地恢复其排序。 样例:[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5] 数组这一部分,很多题目是非常简单的,更多是考察对语言编写的能力,所以,我会在接下来好几节里,简洁快速地将这些题目过一遍,而不对算法细节做过多讲解(因为简单)。 ...

2016-05-13 15:28:48

阅读数 1221

评论数 0

原创 加一

题目描述:给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小进行排列,最大的数在列表的最前面。 样例:给定 [1,2,3] 表示 123, 返回 [1,2,4].给定 [9,9,9] 表示 999, 返回 [1,0,0,0]. 其实是两个链表求和的简单版(链...

2016-05-12 19:19:09

阅读数 423

评论数 0

原创 奇偶分割数组

题目描述:分割一个整数数组,使得奇数在前偶数在后。 样例:给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。 想想在快速排序中,每一次递归是如何调整元素位置的。通过依次遍历,交换的方法,如果记不得了,可以点回去看看(详见:点击打开链接) 所以,这个题类似,直接写出代码就行了: cla...

2016-05-12 15:27:04

阅读数 521

评论数 0

原创 最小子数组

题目描述:给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。 样例:给出数组[1, -1, -2, 1],返回 -3 上一道题,已经讲过最大子数组是如何处理的了(详见:点击打开链接),这道题,稍微做一点修改即可。 既然求最小,那么只要是大于0的前n位和就不能要。 代码几乎和上一道题一模一...

2016-05-12 13:48:07

阅读数 876

评论数 1

原创 最大子数组

题目描述:给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 样例:给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 如果数组全是正数,那么最大子数组当然就是整个数组了。正因为穿插了负数,才让这道题有点难度。 所以,思路是这样的...

2016-05-12 13:21:28

阅读数 1357

评论数 2

原创 复制带随机指针的链表

题目描述:给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。  首先,我先解释一下题目的意思。就是完全按照给出的链表的关系复制链表,比如,原链表中值为1的节点的next指向的是值为2的节点,随机指针指向值为3的节点,那么,复制之后,还是应该满...

2016-05-11 18:52:09

阅读数 3031

评论数 0

原创 子数组之和

题目描述:给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置 样例:给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3]. 求出和为0的子数组,穷举当然能解决。但是效率未免太低了。所以,我在这里用了一种以空间换取时间的办法:哈希表(...

2016-05-11 17:03:12

阅读数 545

评论数 0

原创 两数之和

题目描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是1到n,不是以0开头。 样例:numbers=[2, 7, 11, 15],  target=9, return ...

2016-05-11 11:11:12

阅读数 1005

评论数 1

原创 快乐数

题目描述:写一个算法来判断一个数是不是"快乐数"。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。 样例:19 就是一个快乐数。 1^...

2016-05-11 10:52:32

阅读数 1030

评论数 0

原创 硬币排成线

题目描述:有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢? 样例: n = 1, 返回 true. n = 2, 返回 true. n = 3, 返回 false. n = 4, 返回...

2016-05-10 22:25:53

阅读数 847

评论数 0

原创 旋转链表

题目描述:给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例:给出链表1->2->3->4->5->null和k=2;返回4->5->1->2->3->null 首先,观察一下这个题目要达到的目的,其实,换...

2016-05-10 19:53:26

阅读数 1624

评论数 0

原创 重排链表

题目描述:给定一个单链表L: L0→L1→…→Ln-1→Ln, 重新排列后为:L0→Ln→L1→Ln-1→L2→Ln-2→…必须在不改变节点值的情况下进行原地操作 样例:给出链表1->2->3->4->null,重新排列后为1->4->2->3->...

2016-05-09 23:23:34

阅读数 4657

评论数 0

原创 两个链表的交叉

题目描述:请写一个程序,找到两个单链表最开始的交叉节点。注意事项如果两个链表没有交叉,返回null;在返回结果后,两个链表仍须保持原有的结构;可假定整个链表结构中没有循环。 两个链表交叉,其实就是在某一时刻,两个链表指向了同一个节点。那么,如果两个链表等长,这道题就毫无难度了,我们直接分...

2016-05-09 19:50:42

阅读数 2661

评论数 0

原创 翻转链表 II

题目描述:翻转链表中第m个节点到第n个节点的部分;注意事项:m,n满足1 ≤ m ≤ n ≤ 链表长度 样例:给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->2->5->null ...

2016-05-09 14:28:51

阅读数 1665

评论数 0

原创 回文链表

题目描述:设计一种方式检查一个链表是否为回文链表。 样例:1->2->1 就是一个回文链表。 当设计检查字符串是否为回文字符串的时候,可以用两个指针分别从头尾往中间遍历。但是链表不行,因为链表是不能往前回溯的。 所以我们可以设计这样一个方法:将链表从中间断开,然后令其中一部分翻转...

2016-05-07 22:52:21

阅读数 1797

评论数 1

原创 删除排序链表中的重复数字 II

题目描述:给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。 样例:给出 1->2->3->3->4->4->5->null,返回 1->2->5->null;给出 1->1->1->2->3-&...

2016-05-02 22:29:15

阅读数 941

评论数 0

原创 带环链表

题目描述:给定一个链表,判断它是否有环。 样例:给出 -21->10->4->5, tail connects to node index 1,返回 true 带环链表,只可能长成一下两种样子: 因为一个节点,不可能有两个地址。 所以,我们不妨先把这两种情况看做是两个跑道,那...

2016-05-02 14:04:29

阅读数 492

评论数 0

提示
确定要删除当前文章?
取消 删除