找工作
huakaiba
这个作者很懒,什么都没留下…
展开
-
Summary Ranges
Given a sorted integer array without duplicates, return the summary of its ranges.For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].Credits:Special thanks to @jianchao.li.fighter fo原创 2015-07-03 17:25:41 · 254 阅读 · 0 评论 -
Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But the foll原创 2015-07-27 14:59:53 · 273 阅读 · 0 评论 -
Plus One
Given a non-negative number represented as an array of digits, plus one to the number.The digits are stored such that the most significant digit is at the head of the list.题意:一个整数按位存储于一个int数组中,排原创 2015-07-08 00:03:22 · 314 阅读 · 0 评论 -
Android开发大牛们的博客
1 谦虚的天下:http://www.cnblogs.com/qianxudetianxia/2 csdn博文精选:http://www.csdn.net/article/2011-08-30/303833 备注:张国威、魏竹林等3 ITeye短裤党:http://gundumw100.iteye.com/4 农民伯伯:http://over140.cnblogs.com转载 2015-07-15 00:55:01 · 654 阅读 · 0 评论 -
Find Peak Element
A peak element is an element that is greater than its neighbors.Given an input array where num[i] ≠ num[i+1], find a peak element and return its index.The array may contain multiple peaks, i原创 2015-07-29 17:53:51 · 205 阅读 · 0 评论 -
Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3.移除有序链表里面的重复元素,2个指针来移动判断原创 2015-07-29 12:18:55 · 162 阅读 · 0 评论 -
Valid Sudoku
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be partially filled, where empty cells are filled with the character '.'.A partially f原创 2015-07-29 15:51:31 · 238 阅读 · 0 评论 -
各种排序算法的稳定性和时间复杂度
快速排序、选择排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。快选希堆不是稳定的,冒插归基是稳定的冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)转载 2015-07-31 18:44:54 · 619 阅读 · 0 评论 -
Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ原创 2015-07-10 09:02:46 · 298 阅读 · 0 评论 -
Sort List
Sort a linked list in O(n log n) time using constant space complexity.思路:O(nlgn)的时间复杂度,那就是归并排序和快排, 快速排序:使用快排也行,就是每次利用头节点作为基准,将小于它的交换到链表左侧,大于它的放在右侧,最后把它换到中间某个位置,然后递归处理左侧和右侧。但是相对于归并来说,它的元素交换次数太多了,原创 2015-07-31 21:48:55 · 357 阅读 · 0 评论 -
Lowest Common Ancestor of a Binary Search Tree
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined betwee原创 2015-07-24 10:41:15 · 330 阅读 · 0 评论 -
Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.判断两棵树是否为同一原创 2015-07-27 15:04:49 · 233 阅读 · 0 评论 -
Add Binary
Given two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".思路:和之前的Add Two Numbers那题很像,注意进位的处理就行,而且这个要倒着相加,那个不用倒着。public class Solution {原创 2015-06-15 18:19:07 · 346 阅读 · 0 评论 -
Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the l原创 2015-07-03 18:21:11 · 189 阅读 · 0 评论 -
Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.Show TagsHave yo原创 2015-07-04 15:56:11 · 308 阅读 · 0 评论 -
Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]Show Tags原创 2015-07-04 00:37:40 · 257 阅读 · 0 评论 -
Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place with c原创 2015-07-04 11:30:40 · 221 阅读 · 0 评论 -
Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example:Given the below binary tree and sum原创 2015-07-04 12:02:16 · 247 阅读 · 0 评论 -
Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: a1 → a2 ↘原创 2015-07-03 15:56:38 · 217 阅读 · 0 评论 -
Compare Version Numbers
Compare Version Numbers Total Accepted: 25486 Total Submissions: 167858My SubmissionsQuestion Solution Compare two version numbers version1 and version2.If version1 > version2原创 2015-07-03 15:17:40 · 297 阅读 · 0 评论 -
Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.Show Tags Tree Depth-first Searc原创 2015-07-04 12:19:36 · 327 阅读 · 0 评论 -
Remove Element
Given an array and a value, remove all instances of that value in place and return the new length.The order of elements can be changed. It doesn't matter what you leave beyond the new length.值原创 2015-06-14 09:49:01 · 253 阅读 · 0 评论 -
Anagrams
Given an array of strings, return all groups of strings that are anagrams.Note: All inputs will be in lower-case.首先简单介绍一下Anagram(回文构词法)。Anagrams是指由颠倒字母顺序组成的单词,比如“dormitory”颠倒字母顺序会变成“dirty ro原创 2015-06-14 10:29:54 · 440 阅读 · 0 评论 -
Implement Stack using Queues
Implement the following operations of a stack using queues.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.empty() -- Return whet原创 2015-07-08 16:06:34 · 271 阅读 · 0 评论 -
Delete Node in a Linked List
Write a function to delete a node(except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with valu原创 2015-07-24 16:42:28 · 283 阅读 · 0 评论 -
面试大总结之二:Java搞定面试中的二叉树题目
这是本系列的第二篇,与前一篇 面试大总结之一:Java搞定面试中的链表题目 相比,二叉树的题目可以变化的就更多了。本文还是参考整合重写了《轻松搞定面试中的二叉树题目》和《算法大全(3) 二叉树》两篇大作。本文一个小亮点就是几乎每一道题都用了递归和迭代两种方法写过一遍,因为面试时往往可能会被要求写不擅长的那一种。这一千多行的记录也是我在面试摸索过程中的一个小笔记,备份与此。请大神们轻拍指正。今后转载 2015-08-19 11:51:20 · 712 阅读 · 0 评论 -
任意2n个整数,从其中选出n个整数,使得选出的n个整数和同剩下的n个整数之和的差最小。
编程之美上的题,《数组分割》:假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:S(k, 1) = {A[i] | 1S(k, k) = {A[1]+A[2]+…+A[k]}S(k, i) = S(k-1, i) U {A[k] + x | x属转载 2015-08-19 15:14:27 · 2542 阅读 · 0 评论 -
栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路:具体思路见剑指offer代码如下;import java.util.ArrayList;import java.ut原创 2015-08-07 12:45:13 · 241 阅读 · 0 评论 -
Fraction to Recurring Decimal
Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.If the fractional part is repeating, enclose the repeating part in parentheses.原创 2015-08-06 17:09:51 · 231 阅读 · 0 评论 -
Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.For example:Given the below binary tree and sum = 22, 5 / \原创 2015-07-29 10:45:34 · 214 阅读 · 0 评论 -
c++中32位64位操作系统基本数据类型字节大小
int型字长问题:① C/C++规定int字长和机器字长相同;② 操作系统字长和机器字长未必一致;③ 编译器根据操作系统字长来定义int字长; 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有操作系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:"比如你在64位机器转载 2015-08-20 15:57:52 · 1673 阅读 · 0 评论 -
常见排序的java代码
import java.util.ArrayList;public class AllSorts { public static void main(String[] args) { int[] a = {49,38,65,97,49,76}; print(a); //insertSort(a); //shellSort(a); //selectSort(a);原创 2015-08-20 21:40:15 · 504 阅读 · 0 评论 -
常见排序总结
8种排序之间的关系: 1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 package com.njue; public cl转载 2015-08-20 21:32:13 · 506 阅读 · 0 评论 -
梦想还是要有的,万一实现了呢?
再谈梦想,你会不会嘿嘿一笑?反正我是会。可能已经原创 2014-09-26 22:25:17 · 1148 阅读 · 0 评论 -
面试大总结之一:Java搞定面试中的链表题目
链表是面试中常出现的一类题目,本文用Java实现了面试中常见的链表相关题目。本文主要参考整合重写了《轻松搞定面试中的链表题目》和 《算法大全(1)单链表》两篇大作。两篇大神的实现分别是C和C#,因为我更喜欢用Java面试,所以用Java重写了所有实现,并附上自己的一些思考注释。算法大全(1)单链表 尚未有一些问题尚未整合进来,很快我会更新本文。接下来还会出关于二叉树的大总结和栈和队列的大总结。因为转载 2015-08-19 11:49:58 · 397 阅读 · 0 评论 -
矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?本质还是斐波那契数列,只是f(0)=1(不太明白);别的和跳台阶那题一样代码如下:public class Solution { public int RectCover(int target) { int[] resu原创 2015-08-06 10:58:11 · 201 阅读 · 0 评论 -
Implement Queue using Stacks
Implement the following operations of a queue using stacks.push(x) -- Push element x to the back of queue.pop() -- Removes the element from in front of queue.peek() -- Get the front element.empty(原创 2015-07-24 11:13:42 · 234 阅读 · 0 评论 -
跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。本质是斐波那契数列,但是稍有不同,因为这里的f(0)=0,f(1)=1,f(2)=2,但是斐波那契数列那里f(2)=f(1)+f(0).代码如下:public class Solution { public int JumpFloor(int target) {原创 2015-08-06 10:34:28 · 179 阅读 · 0 评论 -
从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。代码如下:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }*原创 2015-08-06 12:47:19 · 228 阅读 · 0 评论 -
重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。思路图见剑指offer的P54,讲解的很清楚,关键是划分数组属于子树的区间,然后借助递归的方法重建二叉树。(下面的代码并没有原创 2015-08-06 13:24:38 · 189 阅读 · 0 评论