Lettcode刷題筆記(四)--陣列
阿新 • • 發佈:2020-11-18
以後打算刷題按照同樣的型別來。
941. 有效的山脈陣列
我的解法:
class Solution { public boolean validMountainArray(int[] arr) { int max=0; int maxindex=0;
//判斷是否小於三 if(arr.length < 3){ return false; }
//找到最大值以及它的座標 for(int i=1; i< arr.length; i++){if(arr[i-1] < arr[i]){ max= arr[i]; maxindex= i; } }
//判斷左側 for(int i=1; i <= maxindex; i++){ if(arr[i]<=arr[i-1]){ return false; } }
//考慮兩種特殊情況 if(maxindex==arr.length-1 || maxindex==0){return false; } //判斷右側 for(int i=maxindex+1; i < arr.length; i++){ if(arr[i]>=arr[i-1]){ return false; } } return true; } }
思路就是先到最大值然後左右兩側做判斷。
1470. 重新排列陣列
我的解法:
class Solution { public int[] shuffle(int[] nums, int n) {int[] xnums=new int[n]; int[] ynums=new int[n]; for(int i=0; i<2*n; i++){ if(i<n){ xnums[i]=nums[i]; }else{ ynums[i-n]=nums[i]; } } for(int i=0;i<2*n;i++){ if(i%2==0){ nums[i]=xnums[i/2]; }else{ nums[i]=ynums[(i-1)/2]; } } return nums; } }
思路:用兩個陣列儲存x和y值,然後再合併。