原创 Leetcode: String to Integer (atoi)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a c

原创 微信發紅包算法

今天去搜狐參加實習生筆試,最後有道題就是發紅包。 題目要求如下:    1、每個人都要能夠領取到紅包; 2、每個人領取到的紅包金額總和=總金額; 3、每個人領取到的紅包金額不等,但也不能差的太離譜,不然就沒趣味; 網上搜索答案,方

原创 劍指 offer:跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路:第n階只能是從第n-1階或從第n-2階跳上來的。 所以 F(n) = F(n-1) + F(n-2) 斐波拉契數序列,

原创 劍指 offer:斐波那契數列

題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。 要求使用非遞歸算法,遞歸算法效率低。 public class Solution { public int Fibonacci(i

原创 360校園招聘2016筆試題

40選擇題,2道編程題。 1. 第一道編程很簡單,根據研究生的四門課入學成績判斷,Fail或Gongfei,Zifei。 import java.util.Scanner; /** * Created by aifei on 15

原创 劍指 offer:鏈表中倒數第k個結點

題目描述 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 思路:兩個指針,先讓第一個指針和第二個指針都指向頭結點,然後再讓第一個指針到達第k個節點。然後兩個指針同時往後移動,當第一個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節

原创 劍指 offer:旋轉數組的最小數字

題目描述 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個非遞減序列的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。 難點:遍歷數組

原创 Two Sum

https://oj.leetcode.com/problems/two-sum/ Given an array of integers, find two numbers such that they add up to a spe

原创 劍指 offer:用兩個棧實現隊列

題目描述 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 難點:第二個棧的運用 import java.util.Stack; public class Solution { St

原创 劍指 offer:二叉樹的深度

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 遞歸解法: /** public class TreeNode { int val

原创 劍指offer:從尾到頭打印鏈表

從尾到頭打印鏈表 題目描述 輸入一個鏈表,從尾到頭打印鏈表每個節點的值。 思路:符合後入先出規律,可以採用棧結構輔助。 /** * public class ListNode { * int val; *

原创 劍指 offer:調整數組順序使奇數位於偶數前面

題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 思路:i指向數組從左到右第一個偶數,j從i+1的

原创 java IO總結

根據處理數據的數據類型的不同可以分爲:字節流(抽象基類爲InPutStream和OutPutStream)和字符流(抽象基類爲Reader和Writer)。根據流向不同,可以分爲:輸入流和輸出流。 字符流和字節流的主要區別:    

原创 劍指 offer:變態跳水臺

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 思路: 因爲n級臺階,第一步有n種跳法:跳1級、跳2級、到跳n級跳1級,剩下n-1級,則剩下跳法是f(n-1

原创 劍指 offer:矩形覆蓋

題目描述 我們可以用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? 思路:2*n的大矩形可以看作是2*(n-1)的矩形加一個豎着的2*1的小矩形,也可以看做是2