Mock Interview: Apple #1

1808 ワード


Missing Number

class Solution {
    public int missingNumber(int[] nums) {
        int total = 0;
        int result = 0;
        for (int i = 0; i < nums.length; i++) {
            total += i + 1;
            result += nums[i];
        }
        
        return total - result; 
    }
}
Runtime: 0 ms, faster than 100.00% of Java online submissions for Missing Number.
Memory Usage: 39.7 MB, less than 21.37% of Java online submissions for Missing Number.
1~nを加えて、値段も加算します.
最後に差異を返す方法

Count and Say

class Solution {
    public String countAndSay(int n) {
        //개 거지같은 문제네요
        if (n == 1) return "1";
        
        String s = "1";
        
        for (int i = 1; i < n; i++) {
            s = helper(s);
        }
        
        return s; 
    }
    
    private String helper(String s) {
        StringBuilder sb = new StringBuilder();
        char cur = s.charAt(0);
        int i = 1;
        int count = 1; 
        while (i < s.length()) {
            char c = s.charAt(i);
            if (c != cur) {
                sb.append(count).append(cur);
                count = 1;
                cur = s.charAt(i);
            } else {
                count++;
            }
            i++;
        }
        
        sb.append(count).append(cur);
        
        return sb.toString();
    }

}
Runtime: 1 ms, faster than 99.89% of Java online submissions for Count and Say.
Memory Usage: 36.6 MB, less than 71.01% of Java online submissions for Count and Say.
再帰で答えをnに返す
耳の中でsbを使うのは弦を使う時より速いです.
whileはドアで最後まで見てcharが前と同じならcountを上げてそうでなければ次へ飛びます~~