1. 程式人生 > 實用技巧 >Lettcode刷題筆記(四)--陣列

Lettcode刷題筆記(四)--陣列

以後打算刷題按照同樣的型別來。

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值,然後再合併。