劍指offer45
阿新 • • 發佈:2020-08-19
import java.util.Arrays; public class JZ45 { public boolean isContinuous(int [] numbers) { if(numbers.length != 5){ return false; } Arrays.sort(numbers); int min = 0,max = numbers[4]; int k = 0; for(int i = 0; i < 5; i++){if(numbers[i] != 0){ min = numbers[i]; k = i; break; } } for(int i = k; i < 4; i++){ for(int j = i + 1; j < 5; j++){ if(numbers[i] == numbers[j]){ return false; } } }if((max - min) < 5){ return true; } return false; } //此題還可以使用hash思想,新建一個一維陣列作為散列表,牌的值作為雜湊地址,牌的出現次數作為散列表儲存的值。這樣可以將時間複雜度姜維O(n) }
註釋裡的是優化的方法,優化後時間複雜度降低了,空間複雜度提高了。