本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目 輸入數字n,按順序打印出從1最大的n位十進制數。比如輸入3,則打印出1、2、3一直到最大的3位數即999。 思路 陷阱:n過大時是大數問題,不能簡單用int或者long ...
一 題目:打印 到最大的n位數 題目:輸入數字n,按順序打印出從 最大的n位十進制數。比如輸入 ,則打印出 一直到最大的 位數即 。 二 不同的解法 . 不假思索的解法 最容易想到的辦法是先求出最大的n位數,然后用一個循環從 開始逐個打印: 初看之下好像沒有問題,但是其並沒有考慮大數問題,有可能即使用整型 int 或長整型 long 都會溢出。 . 字符串模擬運算的解法 解決這個問題需要表達一個大 ...
2015-08-27 00:46 0 2577 推薦指數:
本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目 輸入數字n,按順序打印出從1最大的n位十進制數。比如輸入3,則打印出1、2、3一直到最大的3位數即999。 思路 陷阱:n過大時是大數問題,不能簡單用int或者long ...
一 題目:調整數組順序使奇數位於偶數前面 題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有奇數位於數組的前半部分,所有偶數位於數組的后半部分。 二 解題思路 如果 ...
題目: 把n個骰子仍在地上,所有骰子朝上一面的點數之和為s。輸入n,打印出s的所有可能的值出現的概率。 思路: s可能出現的值的范圍為:n--6*n 1、全排列 回溯法枚舉n個骰子(6面)的全排列,然后計算每一次排列所有值的和,並統計該和的出現的次數,除以6^n(全排列的全部可能性 ...
一、題目:從尾到頭打印鏈表 題目:輸入一個鏈表的頭結點,從尾到頭反過來打印出每個結點的值。 到解決這個問題肯定要遍歷鏈表。遍歷的順序是從頭到尾的順序,可輸出的順序卻是從尾到頭。也就是說第一個遍歷到的結點最后一個輸出,而最后一個遍歷到的結點第一個輸出。這就是典型的“后進先出 ...
目錄 前言 面試題4 二維數組的查找 一維二分法 二維查找法 面試題5:替換空格 偽新建數組法 從后往前法 面試題6:從尾到頭打印鏈表 面試題7:重建二叉樹 題解 ...
引言:寫這篇文章的初衷只是想做個筆記,因為這道題代碼量有點大,有點抽象,而書上並沒有詳細的注釋。為了加深印象和便於下次復習,做個記錄。 原題:把n個骰子扔到地上,所有骰子朝上一面的點數之后為s. 輸入n,打印出s所有可能的值出現的概率。(每個骰子6個面,點數從1到6) 解法一:基於遞歸,時間 ...
一、題目:連續子數組的最大和 題目:輸入一個整型數組,數組里有正數也有負數。數組中一個或連續的多個整數組成一個子數組。求所有子數組的和的最大值。要求時間復雜度為O(n)。例如輸入的數組為{1,-2,3,10,-4,7,2,-5},和最大的子數組為{3,10,-4,7,2},因此輸出為該子 ...
一.題目描述 把n個骰子仍在地上,所有的骰子朝上的一面的點數之和為s,輸入n,打印出s所有可能的值出現的概率。 二.題解 《劍指offer》上給出的兩種方法,尤其是代碼,晦澀難懂且沒有注釋。而n個骰子的問題實質就是一個動態規划問題,所以文本主要從動態規划的角度來求解這個問題 ...