原创 Linux-文件權限

Linux的一些基礎命令和簡單Shell腳本的編寫是工程師們必備的能力~ 推薦一個網頁版的在線 Linux 環境:copy.sh 沒有 Linux 環境的小夥伴可以在網頁上練練看 權限介紹 權限分爲三種:讀(read)、寫(write

原创 堅持寫博客果然很難吶

首先,先慶祝一下,CSDN終於改的稍微好看了些 orz 今兒個晚上糾結了好久,要不要再重新好好搭個博客,糾結完成 => 還是在CSDN上寫吧,暫時沒有激情搭,搭好說,堅持維護博客,堅持寫博客,好難,嚶嚶嚶 一會兒又要喝中藥了,最近日子

原创 劍指Offer-50. 第一個只出現一次的字符

題目描述 在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 思路 public class Solution { public

原创 劍指Offer-46.求1+2+3+...+n

題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 思路 最直接的想法就是遞歸計算,但是因爲題目限制,遞歸的終止條件就不太好找了 比較聰明的

原创 劍指Offer-30. 最小的K個數

題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 思路 用堆排序,O(nlogk) import java.util.*; public class S

原创 劍指Offer-51. 數組中的逆序對

題目描述 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007 輸入描述: 題目保證

原创 劍指Offer-62. 序列化二叉樹

題目描述 請實現兩個函數,分別用來序列化和反序列化二叉樹 思路 採用前序遍歷 TreeNode -> String,用 # 表示空格,用 ! 表示一個結點的結束 String -> TreeNode /* public class Tre

原创 劍指Offer-22.鏈表中倒數第k個結點

題目描述 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 思路 [方法一] 找倒數第 k 個,就是找正數第 n - k + 1 個,需要遍歷兩遍鏈表。 需要注意此題 k 可能超過 len /* public class ListNode {

原创 劍指Offer-32. 整數中1出現的次數(從1到n整數中1出現的次數)

題目描述 求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?爲此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。ACMer希望你們幫幫他,並把問題更加

原创 劍指Offer-39.數組中出現次數超過一半的數字

題目描述 數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2}。由於數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0。 思路 [方法一]

原创 劍指Offer-27. 二叉樹的鏡像

題目描述 操作給定的二叉樹,將其變換爲源二叉樹的鏡像。 思路 首先要觀察鏡像的規律,然後抽象成二叉樹的先序遍歷 /** public class TreeNode { int val = 0; TreeNode left

原创 劍指Offer-31.棧的壓入、彈出序列

題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1

原创 劍指Offer-39.二叉樹的深度

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

原创 劍指Offer-47.不用加減乘除做加法

題目描述 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。 思路 不能用加減乘除,那說明只能用位運算了 兩個二進制數字相加,第一步先不考慮進位,直接相加,這一步相當於做異或 1 + 0 -> 1 0 + 1

原创 劍指Offer-7. 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。