数据结构和算法
小陈博客
Genius is one percent inspiration and ninety-nine percent perspiration.
展开
-
位运算求和
/* * 题目 给出两个整数a和b, 求他们的和, 但不能使用+等数学运算符。 注意事项 你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。 说明 a和b都是32位整数么? 是的我可以使用位运算符么? 当然可以*/package leetcode;public class n4aplusb { public static void ma原创 2017-01-04 20:55:42 · 2019 阅读 · 0 评论 -
java复制二叉树
/** * 深度复制一个二叉树。 给定一个二叉树,返回一个他的 克隆品 。 */package leetcode;import java.util.Scanner;public class n9cloneTree { public static void main(String[] args) { // TODO Auto-generated method s原创 2017-01-09 23:05:01 · 2593 阅读 · 0 评论 -
java最长上升连续子序列(LICS)
题目给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。 (最长上升连续子序列可以定义为从右到左或从左到右的序列。)样例给定 [5, 4, 2, 1, 3], 其 为 [5, 4, 2, 1], 返回 4. 给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3, 4], 返回 4.分析: 首先从小到原创 2017-07-09 19:13:34 · 1396 阅读 · 0 评论 -
java最长公共字串
给出两个字符串,找到最长公共子串,并返回其长度。注意事项子串的字符应该连续的出现在原字符串中,这与子序列有所不同。样例 给出A=“ABCD”,B=“CBCE”,返回 2public class n13longestComSubstring { public static void main(String[] args) { String a="abcd"; S原创 2017-07-13 21:57:00 · 360 阅读 · 0 评论 -
java爬楼梯
/** * 题目假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例 比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法,返回 3 分析: 典型的动态规划问题。 我们假设到达第n级台阶的方法数为f(n),那么最后一步的时候,我们有两种选择,一是选择爬一步,那么这时候的方法数就是f(n-1),另一种选择是选择爬两步,方法数原创 2017-01-09 22:26:40 · 775 阅读 · 0 评论 -
高度平衡的二叉树
/** * 题目 * 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是: * 一棵二叉树中每个节点的两个子树的深度相差不会超过1。 * 例二叉树:先序 3 9 # # 2 1 # # 7 # # 是平衡二叉树 * 先序 3 # 2 1 # # 7 # # 不是平衡二叉树 * 分析: * 首先求深度,然后判断原创 2017-01-08 22:19:56 · 1769 阅读 · 0 评论 -
二叉树的所有路径
package leetcode; /** * 题目给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例给出下面这棵二叉树: 他的路径为: [ “1->2->5” “1->3” ] */ import java.util.ArrayList; import java.util.List; import java.uti原创 2017-01-08 23:02:11 · 226 阅读 · 0 评论 -
java链表ListNode
/** * 描述:删除链表中等于给定值val的所有节点。样例:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。分析:1.首先判断head是不是空,为空就直接返回null 2.然后从head.next开始循环遍历,删除相等于val的元素 3.最后判断head是否和val相等,若相等,head = head.next原创 2016-12-28 22:52:00 · 41812 阅读 · 4 评论 -
查找斐波纳契数列中第 N 个数
题目: 查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …样例 给定1,返回0给定2,返回1给定10,返回34package leetcode;/** * * @author c9736 *原创 2016-12-28 22:03:27 · 426 阅读 · 0 评论 -
java ListNode链表求和
题目你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例给出两个链表3->1->5->null 和 5->9->2->null,返回8->0->8->null 分析这道题类似之前的二进制求和,只不过换到了链表这种数据结构之上,同时二进制变成了十进制,要考虑好进位的计算。package原创 2017-01-04 22:09:33 · 2755 阅读 · 0 评论