LeetCode—Nim遊戲(思維)+ 猜數字遊戲(巧妙數組)

Nim遊戲(簡單)

2020年6月14日

題目來源:力扣

在這裏插入圖片描述

  • 思維

一開始真的當尼姆遊戲來解,怎麼想都不對,後面看了題解,我傻了,只要是4的倍數,每次就都會輸。

class Solution {
    public boolean canWinNim(int n) {
        return n%4!=0;
    }
}

在這裏插入圖片描述

猜數字遊戲(簡單)

2020年6月14日

題目來源:力扣

在這裏插入圖片描述

解題
兩個字符串長度相同,可以通過遍歷每一位是否相等來確定公牛,也就是A的個數
母牛則可以用抵消的方式來判斷

用示例2來做演示
首先遍歷,第一個位置,發現不相等,那麼在數組上的nums[s]+1,nums[g]-1
在這裏插入圖片描述
判斷第二個位置,發現相等
在這裏插入圖片描述
判斷第三個位置,不相等,那麼看一下nums[s]這個位置(也就是nums[2])沒有數,那麼填進去;nums[g](也就是nums[1]裏面有個1)。因爲我們剛剛是nums[s]++,nums[g]–。所以現在nums[g]大於0的話,就說明有個s等於g,那麼母牛B加一。nums[s]++,nums[g]–
在這裏插入圖片描述
按這個規律,繼續找下面的數
在這裏插入圖片描述

class Solution {
    public String getHint(String secret, String guess) {
        int a=0,b=0;
        int[] nums=new int[10];
        for(int i=0;i<secret.length();i++){
            int s=secret.charAt(i)-'0';
            int g=guess.charAt(i)-'0';
            if(s==g){
                a++;
            }else{
                if(nums[s]<0) b++;
                if(nums[g]>0) b++;
                nums[s]++;
                nums[g]--;
            }
        }
        return a+"A"+b+"B";
    }
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章