akuna capital oa


記得截圖沒過的test case啊!否則連復習改bug的證據都沒了啊!!!

 

其實也不一定非得要拿面試來測試,做做lc的contest,看看自己哪里不會,也是一樣的效果

 

注意是單選題還是多選題

 

hashmap單詞查重:實在是簡單啊,為啥就只過了一半?

 = 1 和 2 的情況都會取出來。本來想給map寫remove的,忘了怎么寫了。唉。

// Complete the missingWords function below.
    static List<String> missingWords(String s, String t) {
        //initialization
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        //HashSet<String> set = new HashSet<String>();
        
        List<String> result = new ArrayList<String>();
        String[] s_words = s.split("\\s+");
        String[] t_words = t.split("\\s+");
        
        //add s
        for (int i = 0; i < s_words.length; i++) {
            map.put(s_words[i], 1);
        }
        
        //add t
        for (int j = 0; j < t_words.length; j++) {
            map.put(t_words[j], map.get(t_words[j]) + 1);
        }
        
        //return
        for (int i = 0; i < s_words.length; i++) {
            if (map.get(s_words[i]) == 1) {
                result.add(s_words[i]);
            }
        }
        return result;
    }

 

 

小孩跑步:實在是簡單啊,為啥就只過了1/4?

 

class Result {

    /*
     * Complete the 'getMostVisited' function below.
     *
     * The function is expected to return an INTEGER.
     * The function accepts following parameters:
     *  1. INTEGER n
     *  2. INTEGER_ARRAY sprints
     */

    public static int getMostVisited(int n, List<Integer> sprints) {
    // Write your code here
        //initialization
        int[] count_steps = new int[n];
        Arrays.fill(count_steps, 0);
        
        //for loop
        for (int pos = 0; pos < sprints.size() - 1; pos++) {
            //smaller or bigger
            if (sprints.get(pos) < sprints.get(pos + 1)) {
                for (int i = sprints.get(pos); i < sprints.get(pos + 1); i++) {
                    count_steps[i]++;
                }
            }else {
                for (int i = sprints.get(pos + 1); i < sprints.get(pos); i++) {
                    count_steps[i]++;
                }
            }
        }
        
        //get max
        int max = count_steps[0];
        int index = 0;
        for (int i = 0; i < n; i++) {
            if (count_steps[i] > max) {
                max = count_steps[i];
                index = i;
            } 
            
        }
        
        //return
        return index;
    }

}

 

給錢多的人賣股票,返回沒買到股票的交易id。完全沒思路,我ri。

就是先sort出價,再sort時間戳,可惜我tm連怎么給list 排序都不會寫……是用heap么?先復習這里,然后順便想想吧。

寫一個Comparator<Object>,然后強制轉換為比較數組。

 

 

package labs;

import java.util.*;    

public class Example1 {    
    
    public static void sort(int[][] ob, final int[] order) {    
        Arrays.sort(ob, new Comparator<Object>() {    
            public int compare(Object o1, Object o2) {    
                int[] one = (int[]) o1;    
                int[] two = (int[]) o2;    
                for (int i = 0; i < order.length; i++) {    
                    int k = order[i];    
                    if (one[k] > two[k]) {    
                        return 1;    
                    } else if (one[k] < two[k]) {    
                        return -1;    
                    } else {    
                        continue;  //如果按一條件比較結果相等,就使用第二個條件進行比較。  
                    }    
                }    
                return 0;    
            }    
        });   
    }    
    
    public static void main(String[] args) {    
        int array[][] = new int[][] {     
                { 12, 34, 68, 32, 9, 12, 545 },     
                { 34, 72, 82, 57, 56, 0, 213 },     
                { 12, 34, 68, 32, 21, 945, 23 },     
                { 91, 10, 3, 2354, 73, 34, 18 },    
                { 12, 83, 189, 26, 27, 98, 33 },     
                { 47, 23, 889, 24, 899, 23, 657 },     
                { 12, 34, 68, 343, 878, 235, 768 },     
                { 12, 34, 98, 56, 78, 12, 546 },     
                { 26, 78, 2365, 78, 34, 256, 873 } };    
        sort(array, new int[] {0});   //先根據第一列比較,若相同則再比較第二列
        for (int i = 0; i < array.length; i++) {    
            for (int j = 0; j < array[i].length; j++) {    
                System.out.print(array[i][j]);    
                System.out.print("\t");    
            }    
            System.out.println();    
        }    
    }    
}

 

 

先把heap背一下吧!別的基礎數據結構,自己總結的那張紙,也要背。越熟練越好,貝多芬,只有腦子里的存貨,考試才可以直接拿來用啊!臨時查、臨時理解是來不及的。

措施:把cheetsheet和mmp里重要的東西趕緊復習一遍,不做題 光默寫都可以,腦子里多存點東西。有面試就趕緊面,沒有的話繼續刷題。方法是:限時,強迫自己寫暴力解 不能光是看了答案之后背出來,這樣測不出自己的水平。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM