原创 記一個不寫重複代碼的技巧

上週tute實現組合模式的時候,被tutor指出寫了重複的代碼,經過指導後,改進了自己編寫代碼的習慣,在此記錄一下。 具體情景如下,在一個遊戲中,不同輪次具有不一樣的計分規則,最後取當前輪所有可用的規則所計算出的分值的最大值爲最終

原创 孩子們的遊戲(圓圈中最後剩下的數)

題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作爲牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號爲0的小朋友

原创 表示數值的字符串

題目描述 請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示數值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和

原创 二叉樹的下一個結點

題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 解法 分情況討論: 1.無右子樹: 1.1節點爲父節點的左子樹,返回父節點 1.2節

原创 數組中重複的數字

題目描述 在一個長度爲n的數組裏的所有數字都在0到n-1的範圍內。 數組中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。 例如,如果輸入長度爲7的數組{2,3,1,0,2,

原创 求1+2+3+...+n

題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 解法 1.等差數列公式 public class Solution {

原创 利用java和weka搭建樸素貝葉斯分類器

本學期課程,需要對數據進行分類,根據網上資料搭建一個樸素貝葉斯分類器,記錄一下,代碼如下 package Test; import java.io.File; import weka.classifiers.Classifier

原创 不用加減乘除做加法

題目描述 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。 解法 不能用四則運算——》位運算 異或:計算加法 (num1&num2)<<1 ——》用於計算進位 temp + num2 循環計算 直到進

原创 正則表達式匹配

題目描述 請實現一個函數用來匹配包括’.‘和’‘的正則表達式。模式中的字符’.‘表示任意一個字符,而’'表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aaa"與模式"a

原创 利用RMI構建共享畫板加聊天室項目總結

文章目錄前言總體結構Remote 模塊iClient接口iwhiteboard接口Server 模塊sever類user類whiteboardServer類protected whiteboardServer()public vo

原创 翻轉單詞順序列

題目描述 翻轉一個句子:“student. a am I”。————》 “I am a student.” 解法 用split/concat/trim等string類方法完成 public class Solution {

原创 鏈表中環的入口結點

題目描述 給一個鏈表,若其中包含環,請找出該鏈表的環的入口結點,否則,輸出null。 解法 快慢指針法 若假設有環存在,則快慢指針會交匯 若此時初始化一個指針從頭結點出發,則這個指針與慢指針交匯的結點爲環入口結點 此結論可通過畫圖

原创 按之字形順序打印二叉樹

題目描述 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 解法 使用兩個棧解決,一個棧裝奇數行(先左後右),一個棧裝偶數行(先右後左

原创 構建乘積數組

題目描述 給定一個數組A[0,1,…,n-1],請構建一個數組B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。 解法 1.A[i]置爲1法,複雜度爲O(

原创 字符流中第一個不重複的字符

題目描述 請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現一次的字符是"l"。如果當前