自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 获得递增子序列的个数

给定一个数n,和一个含n个数的序列,求出本质不同的上升子序列的个数。例如: n=6,{3,1,2,1,3,4} 本质不同的上升子序列共有11种: {3,4} {1,2} {1,3} {1,4} {2,3} {2,4} {1,2,3} {1,2,4} {1,3,4} {2,3,4} {1,2,3,4}这是一道笔试题,同学笔试时候让我帮着做,知道用动态规划做,但是还是没做出来,

2017-09-29 11:00:33 6022 2

转载 Java之equals()、hashcode()

1.何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。 2.设计equals() [1]使用instanceof操作符检查“实参是否为正确的类型”。 [2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。 [2.1]对于非float和double类型的原语类型域,使用==比较; [2.2]对于对象引用域,递归调用equals方法

2017-09-27 09:44:27 179

原创 LintCode 两数之和

给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。Notice你可以假设只有一组答案。Example 给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2]. Either of the foll

2017-09-26 11:20:35 260

原创 LintCode 中位数/第K大元素

给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。给出数组[4, 5, 1, 2, 3], 返回 3给出数组[7, 9, 4, 5],返回 5Challenge 时间复杂度为O(n)若利用快排排序之后再查找,时间复杂度为O(nlgn)。快排每次处理划分之后的两侧,在这里查找中位数只需要处理一侧,时间复杂度为O(n)。pub

2017-09-25 10:03:43 228

原创 LintCode 翻转链表

翻转一个链表样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val

2017-09-22 16:42:06 294

原创 LintCode 交换链表当中两个节点

给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。注意事项你需要交换两个节点而不是改变节点的权值样例 给出链表 1->2->3->4->null ,以及 v1 = 2 , v2 = 4 返回结果 1->4->3->2->null。就是利用两个节点的前驱,本身一顿操作,记录一下。直接看代码:/** *

2017-09-22 14:16:49 317

原创 LintCode 带环链表

给定一个链表,判断它是否有环。参考了网上一些资料,算是一个总结。 感谢sunflower_Yolanda的文章。由这个问题可以引申出来几个问题,先解决本身。 1.判断是否有环。 利用两个指针slow、fast。初始时,两个指针都在表头。slow每次走一步,fast每次走两步。如果不存在环,那么fast一定先到达链表末尾。如果存在环,那么fast和slow一定会在环上的某个位置相遇。 代码:/

2017-09-21 23:48:25 275

原创 LintCode 格雷编码

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个二进制的差异。给定一个非负整数 n ,表示该代码中所有二进制的总数,请找出其格雷编码顺序。一个格雷编码顺序必须以 0 开始,并覆盖所有的 2n 个整数。注意事项对于给定的 n,其格雷编码顺序并不唯一。根据以上定义, [0,2,3,1] 也是一个有效的格雷编码顺序。样例 给定 n = 2, 返回 [0,1,3,2]。其格雷编码顺序为:0

2017-09-20 16:42:00 356

原创 LintCode N皇后问题

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

2017-09-18 16:53:03 386

原创 二维数组斜行遍历

public class test { public static void main(String[] args){ int n =9; int[][] a = new int[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ a[i]

2017-09-18 11:30:26 2890

原创 LintCode 正则表达式匹配

实现支持’.’和’*’的正则表达式匹配。‘.’匹配任意一个字母。‘*’匹配零个或者多个前面的元素。匹配应该覆盖整个输入字符串,而不仅仅是一部分。需要实现的函数是:bool isMatch(const char *s, const char *p)样例 isMatch(“aa”,”a”) → falseisMatch(“aa”,”aa”) → trueisMatch(“aaa”,”aa”) → fa

2017-09-12 15:02:30 258

原创 LintCode 恢复IP地址

给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。样例 给出字符串 “25525511135”,所有可能的IP地址为:[ “255.255.11.135”, “255.255.111.35” ]和LintCode 电话号码的字母组合类似。 首先找到合适的位数组合。一共4位,每一位的长度要大于等于1,小于等于3,且4位和为字符串长度. 另外要判断每1 位的数字组合,是否合乎

2017-09-11 15:57:44 579

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

给定一个字符串,请找出其中无重复字符的最长子字符串。例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。从左向右扫描,遇到重复的字符时,从前面出现该字符的位置的下一个字符开始,重新扫描,直到扫描到最后。例如: abcbdefgdk 字符 a b c b d e f

2017-09-11 14:25:07 259

原创 LintCode 最长回文子串

给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。样例 给出字符串 “abcdzdcab”,它的最长回文子串为 “cdzdc”。挑战 O(n2) 时间复杂度的算法是可以接受的,如果你能用 O(n) 的算法那自然更好。第一次AC的连O(n2)都不是的,是O(n3),遍历所有子串。代码如下:class Solution: """

2017-09-11 11:51:20 230

原创 LintCode 电话号码的字母组合

Given a digit string excluded 01, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below.样例 给定 “23”

2017-09-09 10:54:52 357

转载 LintCode 生成括号

给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。 样例 给定 n = 3, 可生成的组合如下:“((()))”, “(()())”, “(())()”, “()(())”, “()()()” 参考资料,感谢Code_Ganker

2017-09-08 22:47:14 192

原创 LintCode 通配符匹配

参考资料 判断两个可能包含通配符“?”和“*”的字符串是否匹配。匹配规则如下:‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。两个串完全匹配才算匹配成功。函数接口如下: bool isMatch(const char *s, const char *p)一些例子:isMatch(“aa”,”a”) → false isMatch(“aa”,”aa”) → true

2017-09-07 18:00:40 301

原创 LintCode 落单的数 ⅡⅢ

参考资料 落单的数Ⅱ 给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。 样例 给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4落单的数Ⅲ 给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。 样例 给出 [1,2,2,3,4,4,5,3],返回 1和5利用位运算操作。 Ⅱ : int类型有32位。对

2017-09-05 09:18:26 258

转载 LintCode 主元素 ⅠⅡⅢ

虚心学习1 虚心学习2

2017-09-04 16:36:26 333

原创 LintCode 寻找缺失的数

给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。样例 N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。题目说的不是很清楚,意思就是如下: 给定给一个序列,有N个数,对于{0,1,2,……N}这个N+1个数的序列中,少了哪一个数? 这道题和LintCode上另一道题类似——《落单的数》给出2*n + 1 个的数字,除其中一个数字之外其他每个

2017-09-04 15:07:47 352

空空如也

空空如也

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

TA关注的人

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