剣指offerno 45.トランプ順子(Java)
1475 ワード
タイトルの説明:
LL今日の気持ちはとても良くて、彼がトランプを买いに行ったため、中に意外にも2人の王がいることを発见して、2人の王(1枚の札はもともと54枚^^)...彼はランダムに中から5枚の札を抜き出して、自分の手加減を测って、顺子を引くことができるかどうかを见て、もし引くならば、彼はスポーツ宝くじを买いに行くことを决めて、へへへ!"红心A,黑桃3,王,大王,角片5","Oh My God!"は顺子ではない.....LLは不機嫌で、彼は考えて、大きい王はいかなる数字を见ることができて、しかもAは1と见て、Jは11で、Qは12で、Kは13です.上の5枚のカードは「1,2,3,4,5」(大きさの王はそれぞれ2と4と見なしている)、「So Lucky!」になります.LLはスポーツ宝くじを買うことにしました.今、このカードを使って上の過程をシミュレートして、LLの運を教えてください.カードが順子を構成できればtrueを出力します.そうしないとfalseを出力します.便宜上、王さんは0だと思います.
考え方:
5枚のカードは大きさ5の配列で代用できますまず配列をソート 配列中の0の個数を遍歴する n 隣接する数字間の空き位置個数m を算出する. m<=nの場合、5枚のカードが連続可能であることを示し、そうでなければ は連続しない.配列を巡回し、検証を行い、配列内の隣接する数字が重複している場合も連続しない.
コード:
毎冬の句点はすべて春が暖かくて花が咲きます..
LL今日の気持ちはとても良くて、彼がトランプを买いに行ったため、中に意外にも2人の王がいることを発见して、2人の王(1枚の札はもともと54枚^^)...彼はランダムに中から5枚の札を抜き出して、自分の手加減を测って、顺子を引くことができるかどうかを见て、もし引くならば、彼はスポーツ宝くじを买いに行くことを决めて、へへへ!"红心A,黑桃3,王,大王,角片5","Oh My God!"は顺子ではない.....LLは不機嫌で、彼は考えて、大きい王はいかなる数字を见ることができて、しかもAは1と见て、Jは11で、Qは12で、Kは13です.上の5枚のカードは「1,2,3,4,5」(大きさの王はそれぞれ2と4と見なしている)、「So Lucky!」になります.LLはスポーツ宝くじを買うことにしました.今、このカードを使って上の過程をシミュレートして、LLの運を教えてください.カードが順子を構成できればtrueを出力します.そうしないとfalseを出力します.便宜上、王さんは0だと思います.
考え方:
5枚のカードは大きさ5の配列で代用できます
コード:
package offer01;
import java.util.Arrays;
public class TestNo45 {
public static void main(String[] args) {
int[] a = {1,3,0,5,0};
System.out.println(new TestNo45().isContinuous(a));
}
public boolean isContinuous(int [] numbers) {
if(numbers == null || numbers.length <=0){
return false;
}
Arrays.sort(numbers);//
int numberOf0 = 0;// 0
int numberOfGap = 0;//
// 0
for(int i = 0;i
毎冬の句点はすべて春が暖かくて花が咲きます..