自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(442)
  • 资源 (1)
  • 收藏
  • 关注

原创 身份证分组

题目描述 18位身份证的编码规则是: 前1、2位数字表示:所在省(直辖市、自治区)的代码 第3、4位数字表示:所在地级市(自治州)的代码 第5、6位数字表示:所在区(县、自治县、县级市)的代码; 第7—14位数字表示:出生年、月、日; 第15、16位数字表示:所在地的派出所的代码; 第17位数字表示性别:奇数表示男性,偶数表示女性; 第18位数字是校检码,用来检验身份证的正确性。 ...

2018-08-13 21:50:01 525

原创 LintCode - 稀疏矩阵乘法

描述 给定两个 稀疏矩阵 A 和 B,返回AB的结果。 您可以假设A的列数等于B的行数。样例A = [ [ 1, 0, 0], [-1, 0, 3]]B = [ [ 7, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 1 ]] | 1 0 0 | | 7 0 0 | | 7 0 0 |AB = | -1 0 ...

2018-07-27 22:46:32 619

原创 LintCode - 最多有k个不同字符的最长子字符串

描述 给定一个字符串,找到最多有k个不同字符的最长子字符串。样例 例如,给定 s = “eceba” , k = 3,T 是 “eceb”,长度为 4.挑战 O(n), n 是所给字符串的长度思路#ifndef C386_H#define C386_H#include<iostream>#include<string>#include&lt...

2018-07-27 22:21:03 1280

原创 N皇后问题 - LintCode

描述 n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。样例 对于4皇后问题存在两种解决的方案:[[".Q..", // Solution 1 "...Q", "Q...", "..Q.&

2018-07-11 22:06:29 268

原创 与或和 - LintCode

描述 给 n 个非负整数,请你求出最大或和,最小或和,最大与和,最小与和这四个数之和。最大或和为在 n 个数中,任取若干个数(不能不取),进行或运算后最大的数。 最小或和为在 n 个数中,任取若干个数(不能不取),进行或运算后最小的数。 最大与和为在 n 个数中,任取若干个数(不能不取),进行与运算后最大的数。 最小与和为在 n 个数中,任取若干个数(不能不取),进行与运算后最小的数。...

2018-07-10 21:57:33 286

原创 数 1 - LintCode

描述 给以 非负 整数 num. 对所有满足 0 ≤ i ≤ num 条件的数字 i 均需要计算其二进制表示 1 的个数并以数组的形式返回样例 给出 num = 5 你需要返回 [0,1,1,2,1,2].挑战 时间复杂度为 O(n * sizeof(integer))的解法很容易想到, 但是你是否可以用线性的时间复杂度 O(n)/可能只遍历一遍吗, 空间复杂度应为 O(n). 你...

2018-07-10 21:49:28 200

原创 搜索区间 - LintCode

描述 给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1]样例 给出[5, 7, 7, 8, 8, 10]和目标值target=8, 返回[3, 4]挑战 时间复杂度 O(log n)思路#ifndef C61_H#define C61_H#include<iostream>...

2018-07-09 10:47:10 208

原创 搜索二维矩阵 II - LintCode

描述 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。样例 考虑下列矩阵:[ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10]]给出target = 3,返回 2挑...

2018-07-09 10:34:12 215

原创 字符大小写排序 - LintCode

描述 给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。样例 给出”abAcD”,一个可能的答案为”acbAD”挑战 在原地扫描一遍完成思路#ifndef C49_H#define C49_H#include<string>#include<iostream&g...

2018-07-05 23:01:01 515

原创 翻转链表 II - LintCode

描述 翻转链表中第m个节点到第n个节点的部分m,n满足1 ≤ m ≤ n ≤ 链表长度样例 给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->2->5->null挑战 在原地一次翻转完成思路#ifndef C036_H#define C036_H#inclu...

2018-07-05 15:04:52 192

原创 最大子数组差 - LintCode

描述 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。返回这个最大的差值。子数组最少包含一个数样例 给出数组[1, 2, -3, 1],返回 6挑战 时间复杂度为O(n),空间复杂度为O(n)思路 构建相应的数组ForMax[i]表示从nums[0]到nums[i]的子数组和的最大值,ForMin[i]表...

2018-07-05 09:47:02 323

原创 Subsets II - LintCode

描述 Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).子集中的每个元素都是非降序的 两个子集间的顺序是无关紧要的 解集中不能包含重复子集样例 Input: [1,2,2] Output:[ [2...

2018-07-04 15:51:21 133

原创 子集 - LintCode

描述 给定一个含不同整数的集合,返回其所有的子集 子集中的元素排列必须是非降序的,解集必须不包含重复的子集样例 如果 S = [1,2,3],有如下的解:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]挑战 你可以同时用递归与非递归的方式解决么?思路 从右到左处理nums的元素,当r...

2018-07-03 23:31:22 160

原创 丑数II - LintCode

描述 写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。可以认为 1 是一个特殊的丑数。样例 给出 num = 8,返回 true。 给出 num = 14,返回 false。思路 构建数组nums存放丑数,nums[0]=1。将当前的丑数当做之前求得的丑数乘以...

2018-07-03 22:20:15 186

原创 二叉查找树的中序后继 - LintCode

描述 给定一个二叉查找树(什么是二叉查找树),以及一个节点,求该节点在中序遍历的后继,如果没有返回null保证p是给定二叉树中的一个节点。(您可以直接通过内存地址找到p)样例 给出 tree = [2,1] node = 1: 2 /1返回 node 2.给出 tree = [2,1,3] node = 2: 2 / \1 3返回 node ...

2018-07-01 19:30:33 2633

原创 二叉树的最长连续子序列 II - LintCode

描述 给定一棵二叉树,找到最长连续序列路径的长度。 路径起点跟终点可以为二叉树的任意节点。样例 1 / \ 2 0 /3返回 4 // 0-1-2-3思路 对于每个节点root,求以root为起始节点的最长连续递增递增序列的长度up和最长连续递减序列的长度down,结果返回 < up,down >。初始化up, down均为1,left...

2018-07-01 19:05:26 1039

原创 Find Leaves of Binary Tree - LintCode

描述 给定一个二叉树,像这样收集树节点:收集并移除所有叶子,重复,直到树为空。样例 Given binary tree: 1 / \ 2 3 / \ 4 5 Returns [[4, 5, 3], [2], [1]].思路#ifndef C650_H#define C650_H#include<iostream&g...

2018-06-30 23:02:38 240

原创 Sum Root to Leaf Numbers - LintCode

描述 Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.Find the ...

2018-06-30 22:55:28 131

原创 字符串构造二叉树 - LintCode

描述 您需要从包含括号和整数的字符串中构造一个二叉树。 整个的输入表示一个二叉树。它包含一个整数,或零,或两对括号。该整数表示根的值,而一对括号包含一个具有相同结构的子二叉树。 如果父节点存在,您总是首先开始构造它的左子节点。在输入字符串中只有'(',')','-'和'0' ~ '9'。空树表示为“”而不是“()”。样例 给定 s = “4(2(3)(1))(6(5))”, ...

2018-06-30 16:55:53 2354

原创 Binary Tree Tilt - LintCode

描述 Given a binary tree, return the tilt of the whole tree.The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subt...

2018-06-30 16:15:47 175

原创 Subtree of Another Tree - LintCode

描述 Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this ...

2018-06-30 16:05:39 151

原创 Sum of Left Leaves - LintCode

描述 Find the sum of all left leaves in a given binary tree.样例 3 / \ 9 20 / \ 15 7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24....

2018-06-27 11:08:32 128

原创 二叉树最长连续序列 - LintCode

描述 给一棵二叉树,找到最长连续路径的长度。 这条路径是指 任何的节点序列中的起始节点到树中的任一节点都必须遵循 父-子 联系。最长的连续路径必须是从父亲节点到孩子节点(不能逆序)。样例 举个例子: 1 \ 3 / \ 2 4 \ 5最长的连续路径为 3-4-5,所以返回 3。 2 \...

2018-06-23 21:44:05 1165

原创 Compare Version Numbers - LintCode

描述 Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0. You may assume that the version strings are non-em...

2018-06-21 15:49:06 137

原创 Symmetric Tree - LintCode

描述 Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). Bonus points if you could solve it both recursively and iteratively.样例 For example, this binary t...

2018-06-21 14:21:52 169

原创 尾随零 - LintCode

描述 给定一个整数n,返回n!(n的阶乘)的尾随零的个数。您的解法时间复杂度应为对数级别。思路 由于2和5可以形成0,且2的个数总是多于5,所以尾部0的个数是由0~n中包含5的个数决定的。譬如,5包含1个5,10包含1个5,25包含两个5…#ifndef C1347_H#define C1347_H#include<iostream>using namespa...

2018-06-21 13:51:42 730

原创 Repeated DNA Sequences - LintCode

描述 All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: “ACGAATTCCG”. When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.W...

2018-06-14 20:30:07 119

原创 抽搐词 - LintCode

描述 我们正常的单词不会有连续两个以上相同的字母,如果出现连续三个或以上的字母,那么这是一个抽搐词。现在给一个单词,从左至右求出所有抽搐字母的起始点和结束点。输入的字符串长度为n,n <= 100000。样例 给出 str = “whaaaaatttsup”, 返回 [[2,6],[7,9]]。解释:"aaaa"和"ttt"是抽搐字母,输出他们的起始点和结束点。...

2018-06-12 22:23:06 473

原创 最长AB子串 - LintCode

描述 给你一个只由字母’A’和’B’组成的字符串s,找一个最长的子串,要求这个子串里面’A’和’B’的数目相等,输出该子串的长度。这个子串可以为空。s的长度n满足 2<=n<=1000000。样例 给定s=”ABAAABBBA”,返回8。解释:子串 s[0,7] 和子串 s[1,8] 满足条件,长度为 8。给定s=”AAAAAA”,返回0。解释:s...

2018-06-11 21:51:00 1721 1

原创 染色问题 - LintCode

描述 有一个圆形,分成n个扇形,用m种颜色给每个扇形染色,相邻扇形颜色不能相同。求方案总数。不考虑对称性。 由于这个数可能很大,因此只需返回方案数模1e9 + 7。 1≤n≤105,1≤m≤1051≤n≤105,1≤m≤1051≤n≤10^5 ,1≤m≤10^5 ​ 样例 给定n = 2,m = 3,返回6。解释:一个圆划分为 2 个扇形,用 3 种颜色上色方案有“黑红...

2018-06-11 20:03:10 3031

原创 覆盖数字 - LintCode

描述 给出一些区间,问覆盖次数最多的数是多少,如果有多个,输出最小的那个数。区间的个数不大于10^5。区间的左右端点大于0小于等于10^5。样例 给出 intervals = [(1,7),(2,8)], 返回 2。解释:2被覆盖了2次,且是覆盖2次中最小的数。给出 intervals = [(1,3),(2,3),(3,4)], 返回 3。解释:3被覆盖了3...

2018-06-06 10:49:27 303

原创 Basic Calculator III - LintCode

描述Implement a basic calculator to evaluate a simple expression string. The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empt...

2018-06-05 21:42:45 377

原创 Basic Calculator - LintCode

描述 Implement a basic calculator to evaluate a simple expression string. The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empt...

2018-06-05 08:21:32 146

原创 树 - LintCode

描述 给出两个list x,y,代表x[i]与y[i]之间有一条边,整个边集构成一棵树,1为根,现在有个list a,b,表示询问节点a[i]与b[i]是什么关系,如果a[i]与b[i]是兄弟,即有同一个父节点,输出1,如果a[i]与b[i]是父子关系,输出2,否则输出0。节点数不大于100000。所以的数均为不大于100000的正整数样例 给出 x = [1,1], y = [...

2018-06-02 21:07:34 146

原创 前一个数 - LintCode

描述 给一个数组,对于每一个元素,找出它之前第一个比它小的元素的值。如果没有,则输出它本身。输入的数组长度为n,n <= 100000。 元素的大小为x,x <= 1000000。样例 给出 list = [2,3,6,1,5,5],返回 [2,2,3,1,1,1]。解释:依据题意,找出每个数字前面第一个比它小的元素。给出 list = [6,3,1,2,5,1...

2018-05-28 09:44:27 183

原创 最高频的K个单词 - LintCode

描述 给一个单词列表,求出这个列表中出现频次最高的K个单词。你需要按照单词的词频排序后输出,越高频的词排在越前面。如果两个单词出现的次数相同,则词典序小的排在前面。样例 给出单词列表:[ "yes", "lint", "code", "yes", "code", "baby", "you", "baby", &

2018-05-23 22:35:02 1274

原创 最接近的三数之和 - LintCode

描述 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。只需要返回三元组之和,无需返回三元组本身样例 例如 S = [-1, 2, 1, -4] and target = 1. 和最接近 1 的三元组是 -1 + 2 + 1 = 2.挑战 O(n^2) 时间, O(1) 额外空间。思路 由于不需要返回三元组本身,可以对...

2018-05-22 09:15:11 211

原创 炸弹袭击 - LintCode

描述 给一个二维矩阵, 每一个格子都可能是一堵墙 W, 一个敌人 E 或者空 0 (数字 ‘0’), 返回你可以用一个炸弹杀死的最大敌人数. 炸弹会杀死所有在同一行和同一列没有墙阻隔的敌人, 因为墙比较坚固难以摧毁.你只能在空的地方放置炸弹.样例 给一个矩阵:0 E 0 0E 0 W E0 E 0 0返回 3.(在(1, 1)处放炸弹可以杀死 3 个敌人)思路 ...

2018-05-21 09:42:19 659

原创 幸运数字8 - LintCode

描述 8是小九的幸运数字,小九想知道在1~n的数中有多少个数字含有8。1 <= n <= 1000000样例 给出 n = 20, 返回2。解释:只有8,18 含有8。给出 n = 100, 返回19。解释:有8,18,28,38,48,58,68,78,80,81,82,83,84,85,86,87,88,89,98。思路 判断数字n是否...

2018-05-18 15:37:38 1705

原创 推荐朋友 - LintCode

描述 给n个人的朋友名单,告诉你user,请找出user最可能认识的人。(他和user有最多的共同好友且他不是user的朋友)n <= 500。好友关系是相互的。(b若出现在a的好友名单中,a一定出现在b的好友名单中)每个人的好友关系不超过 m 条,m <= 3000。如果有两个人和user的共同好友数目一样,编号更小的那个认为是最可能认识的人。如果user和所有陌生...

2018-05-18 15:08:00 796

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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