class Solution {
public int[] sortArrayByParityII(int[] A) {
int j = 1;
for (int i = 0; i < A.length - 1; i = i + 2) {
if ((A[i] & 1) != 0) {
while ((A[j] & 1) != 0) {
j = j + 2;
}
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
}
return A;
}
}
class Solution {
public List<String> commonChars(String[] A) {
List<String> list = new ArrayList<>();
int i,j,a[][]= new int[100][26];
for(i=0;i<A.length;i++) {
for(j=0;j<26;j++) {
a[i][j]=0;
}
}
for(i=0;i<A.length;i++) {
for(j=0;j<A[i].length();j++) {
a[i][A[i].charAt(j)-97] += 1;
}
}
for(i=0;i<26;i++) {
int min = 10000;
for(j=0;j<A.length;j++) {
if(min>a[j][i]) {
min = a[j][i];
}
}
for(j=0;j<min;j++) {
char c = (char) (i + 97);
list.add(String.valueOf(c));
}
}
return list;
}
}
class Solution {
public int findLUSlength(String a, String b) {
int c = a.length();
int d = b.length();
if(a.equals(b)){
return -1;
}else {
return c>d?c:d;
}
}
}
class Solution {
public int findMagicIndex(int[] nums) {
if(nums.length==0)return -1;
return binary(nums,0,nums.length-1);
}
public int binary(int[] nums,int low,int high){
if(low>high)return -1;
if(low==high){
if(nums[low]==low)return low;
else return -1;
}
if(low<high){
int mid=(low+high)/2;
if(nums[mid]==mid){
int t = binary(nums,low,mid-1);
if(t==-1)return mid;
else return -1;
}else{
int t=binary(nums,low,mid-1);
if(t==-1)return binary(nums,mid+1,high);
else return t;
}
}
return -1;
}
}