image
這題主要是取得
最大公因數GCD(Greatest common divisor)

程式小試身手 發表在 痞客邦 留言(0) 人氣()

cars=[2,10,8,17], k=3
這題我原本以為是排序後取三蓋屋頂,排序[2,8,10,17] ,2~10 得 10-2+1=9

程式小試身手 發表在 痞客邦 留言(0) 人氣()

tokens = [100,200,300,400], power = 200 Output: 2
這題是指能量200,能量夠的話就花令牌能量並得分(score++),否則取令牌能量並扣分,且不重複使用令牌

程式小試身手 發表在 痞客邦 留言(0) 人氣()

The Coin Change Problem 題目看了一陣子才看懂,是指組成 n 元有多少硬幣元素(c)組合
這網站下的分類很詳細,原來換硬幣問題博大精深

程式小試身手 發表在 痞客邦 留言(0) 人氣()

LinkedHashMap 概念非常不易 要另找時間再挑戰一次

程式小試身手 發表在 痞客邦 留言(0) 人氣()

有鑑於上一篇,有想到需要Hashmap,確實解答也是這麼用...
 

程式小試身手 發表在 痞客邦 留言(0) 人氣()

能否從wordDict字典拚出字串s
想法一:

程式小試身手 發表在 痞客邦 留言(0) 人氣()



Input: adjList = [[2,4],[1,3],[2,4],[1,3]]

程式小試身手 發表在 痞客邦 留言(0) 人氣()

原本想先排序再Point index,但建議解真的很好,先將原index值+1 再去陣列循環是否包含此值,
以 [100,4,200,1,3,2] 來說 3+1=4,陣列確實含4且連續

程式小試身手 發表在 痞客邦 留言(0) 人氣()

class Solution {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        List<int[]> ans = new ArrayList<>();
        int[] toAdd = newInterval;
        /* [[1,3],[6,9]]->[2,5] */
        for (int i = 0; i < intervals.length; i ++) {
            /*1. No overlap and toAdd appears before current interval, add toAdd to result.*/
            if (intervals[i][0] > toAdd[1]) {//1>5,6>5,1>3,6>3
                ans.add(toAdd);//[2,5],[1,3]
                toAdd = intervals[i];//[1,3],[6,9]
            }
            /*2. Has overlap, update the toAdd to the merged interval.*/
            else if (intervals[i][1] >= toAdd[0])  
                toAdd = new int[] {Math.min(intervals[i][0], toAdd[0]), Math.max(intervals[i][1], toAdd[1]) };
            /*3. No overlap and toAdd appears after current interval, add current interval to result.*/
            else ans.add(intervals[i]); 
        }
        ans.add(toAdd);
        return ans.toArray(new int[ans.size()][2]);
    }
}

程式小試身手 發表在 痞客邦 留言(0) 人氣()

第一次想這題時方向不太對
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        //index[m] 走0~n.length-1格
        //index[m+1] 走 最後(n-1)
        //index[m+2] 走 n-1~ 0
        //回到index[m+1]走 0~n-2
        int m=matrix.length;
        int n=matrix[0].length;
        int i=0;
        int r_index=0;
        List<Integer> result= new ArrayList<Integer>();
        
        while(i<m){//>字型走法
           if(i==0){//第一列
              int j=0;
              while(j<n){
                 result.add(matrix[i][j++]);
              }
            }else if(i==m-1){//最後一列
              int j=n-1;
              while(j>=0){
                 result.add(matrix[i][j--]);
              }
            }else{//中間先走每一個matrix[i]最後一個index
               result.add(matrix[i][n-1]);
            }
            i++;
            r_index++;
        }
        //走中間每一個matrix[i]第一個index
        i=0;
        while(i<m&&m>2){
            if(i!=0&&i!=m-1){
                result.add(matrix[i][0]);
            }
            i++;
        }
        //....裡面的就要在循環一次>
        
        return result;
    }
}

程式小試身手 發表在 痞客邦 留言(0) 人氣()

第一個想法,暴力破解
class Solution {
    public double myPow(double x, int n) {
       int i=1;
       int round= Math.abs(n);//絕對值
       double result=0;
       result=x;
       while(i<round){
             result=x*result;
             i++;
            }
       if(n>0){
             return result;
       }else{
             return 1/result;
       }
    }
}

程式小試身手 發表在 痞客邦 留言(0) 人氣()

1 2
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。