摘要: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have ex 阅读全文
posted @ 2017-12-29 14:22 jeysin 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 思路:哈希表存储出现的次数。两次遍历字符串,时间复杂度为O(n),空间复杂度为O(1) 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并 阅读全文
posted @ 2017-12-29 10:43 jeysin 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数 思路:新的丑数由前面已有的丑数乘以2, 3, 5得到。维护T2,T3,T5,新的丑数即为min(M2, M3, 阅读全文
posted @ 2017-12-29 10:31 jeysin 阅读(160) 评论(0) 推荐(0) 编辑
摘要: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity sh 阅读全文
posted @ 2017-12-28 22:35 jeysin 阅读(159) 评论(0) 推荐(0) 编辑
摘要: Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the leng 阅读全文
posted @ 2017-12-28 17:44 jeysin 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路:自定义排序规则,将数组排好序之后顺序输出就是结果 1 class Solution { 2 public: 阅读全文
posted @ 2017-12-28 15:37 jeysin 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目描述 数字按照0123456789101112131415161718192021...的顺序排列。第5位(从0开始计数)为5,第13位为1,第19位为4…… 求任意第n位对应的数字 阅读全文
posted @ 2017-12-28 13:45 jeysin 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 感觉《 阅读全文
posted @ 2017-12-28 10:48 jeysin 阅读(219) 评论(0) 推荐(0) 编辑
摘要: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contai 阅读全文
posted @ 2017-12-27 23:20 jeysin 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1 阅读全文
posted @ 2017-12-27 15:58 jeysin 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 解法1:数组不排序,基于Partition函数找中位数。插入数字和找出中位数的时间复杂度分别为O(1) 阅读全文
posted @ 2017-12-27 14:19 jeysin 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4, 解法1:基于Partition函数的时间复杂度为O(n)的解法,只有当我们可以修改原始数组时可用 1 class Solution { 2 public: 3 int 阅读全文
posted @ 2017-12-27 10:25 jeysin 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解法1:基于Partition函数的时间复杂度为O(n)的算法。注意最后检查数 阅读全文
posted @ 2017-12-26 16:35 jeysin 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 思路:以前序遍历为基础,考虑NULL指针。将NULL指针记为$。注意字符串的处理,将数字转化为字符串,将字符串转化为数字。 1 class Solution { 2 public: 3 void WriteToStr(int val, cha 阅读全文
posted @ 2017-12-26 15:42 jeysin 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:回溯法,排列树。由于字符有 阅读全文
posted @ 2017-12-26 11:37 jeysin 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 思路:基于中序遍历方法,用一个指针始终指向双向链表的最后一个节点,转换完以后即指向双向链表的最后一个节点 1 class Solution { 2 public: 3 void 阅读全文
posted @ 2017-12-26 09:29 jeysin 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路:N'连接在N的后面,可以以O(n)的时间复制特殊指针的指向,再将两个 阅读全文
posted @ 2017-12-25 11:58 jeysin 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 思路:回溯法 1 class Solution { 2 public: 3 void DFS(TreeNode *root, vector<vecto 阅读全文
posted @ 2017-12-25 10:46 jeysin 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路:序列的最后一个节点是根节点,找分界点,分为左右子树,递归。 1 class Solution { 2 public: 3 int getMid( 阅读全文
posted @ 2017-12-25 10:26 jeysin 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印 思路:广度优先遍历 1 class Solution { 2 public: 3 vector<int> PrintFromTopToBottom(TreeNode* root) { 4 vector<int> res; 5 if(ro 阅读全文
posted @ 2017-12-25 10:00 jeysin 阅读(146) 评论(0) 推荐(0) 编辑