目錄從撲克牌隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2~10為數字本身,a為1,j為11,q為12,k為13,而大、小王可以看成任意數字。
找出最大最小值,0的數量,判斷最大最小值的差中的空缺數是否小於等於0的個數1.快排:
快排超時,使用arrays.sort(numbers);
public class solution
}int diff=max-min-(numbers.length-count-1);
return diff<=count;
}}
0,1,…,n-1這n個數字排成乙個圓圈,從數字0開始,每次從這個圓圈裡刪除第m個數字,求出這個圓圈裡剩下的最後乙個數字。
約瑟夫環。找到規律然後遞迴/迴圈;利用迴圈鍊錶
\[約瑟夫環的公式:
f(n,m)=
\begin
0, &n=1\\
[f(n-1,m)+m]\%n, &n>1
\end
\]1.迴圈:
public class solution
return last;
}}
2.遞迴:
public class solution
}
3.迴圈鍊錶:
陣列模擬環。考慮每個變數的作用,考慮環如何表達等因素。
public class solution
}return i;//返回跳出迴圈時i的值,即最後乙個數字的索引
}}
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(a ? b:c)。
當這些操作不可用時,可以考慮短路
操作當作遞迴退出條件。
短路+遞迴:
&&
和||
都可以
public class solution
}
寫乙個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算符號。
利用位運算。其中1.位運算:異或
得到沒有進製時的和,與
得到都為1的位,與左移一位
得到進製,最後相加(直到沒有進製時)得到和。
public class solution
return num1;
}}
將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0
輸入描述
:輸入乙個字串,包括數字字母符號,可以為空
輸出描述
:如果是合法的數值表達則返回該數字,否則返回0
遍歷,依次相加組成結果。中間需要注意越界,符號等因素1.遍歷:
public class solution else if(str.charat(0)=='+')
long res=0;//long表達,防止越界
for(int i=0;i57)//若不是純數字
return 0;
res+=(c-'0')*math.pow(10,str.length()-i-1);//轉化為整型
}if(!flag)
if(res>integer.max_value || res如有錯誤,歡迎指正
劍指offer 題5 替換空格
題目 首先拿到題目,第一感覺就是乙個 空格 變成了 20 那字串長度肯定變長啊 所以我第一反應是建立新的字串b,然後從a乙個個讀取字元,遇到 空格 就用 20 來替代,只要b空間足夠,遍歷一遍就成了。但是,面試再簡單也不是考這種題目。於是這時候面試官可能會講了 要求在原來的字串上進行操作 這時候問題...
劍指Offer系列刷題筆記彙總
本系列文章為 劍指offer 刷題筆記。刷題平台 牛客網 刷題刷的比較慢,花費了兩個多月,終於將所有題目過了一遍,牛客網一共有66道題,這次刷題主要使用c 接下來會使用python重新過一遍,並對這些寫過的文章進行更新。同時,也會重新開始刷leetcode。github專案 分類二一 線性表 1 陣...
劍指Offer系列刷題筆記彙總
劍指offer 二 替換空格 劍指offer 二十七 字串的排列 劍指offer 三十四 第乙個只出現一次的字元 劍指offer 四十三 左旋轉字串 劍指offer 四十四 翻轉單詞順序序列 劍指offer 四十九 把字串轉換成整數 劍指offer 五十二 正規表示式匹配 劍指offer 五十三 表...