leetCode 932 Beautiful Array(分治)

xiaoxiao2025-04-23  14

题目链接

LeetCode 932

分析

分治,将偶数和奇数分开就好了

code

class Solution { public int[] beautifulArray(int N) { if(N==1)return new int[]{1}; else if(N ==2)return new int[]{2,1}; int [] ret = new int[N]; int mid = N/2; int r=mid; if((N & 1) == 1){ ret[mid] =1; r = mid+1; } int[] left = beautifulArray(mid); for(int i=0 ; i<left.length ; ++i)ret[i] = left[i]<<1; int[] right = beautifulArray(mid); if(r>mid) for(int i=0 ; i<right.length ; ++i)ret[r+i] = right[i]*2+1; else for(int i=0 ; i<right.length ; ++i)ret[r+i] = right[i]*2 -1; return ret; } }
转载请注明原文地址: https://www.6miu.com/read-5028974.html

最新回复(0)