1. 程式人生 > 實用技巧 >劍指offer45

劍指offer45

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) }

註釋裡的是優化的方法,優化後時間複雜度降低了,空間複雜度提高了。