class Solution {
public int[] kWeakestRows(int[][] mat, int k) {
int[] re = new int[k];
int reIndex = 0;
boolean[] flag = new boolean[mat.length];
for (int i = 0; i < mat[0].length; i++) {
for (int j = 0; j < mat.length; j++) {
if (!flag[j] && mat[j][i] == 0) {
re[reIndex++] = j;
flag[j] = true;
if (reIndex == k) {
return re;
}
}
}
if (i == mat[0].length - 1 && reIndex != k) {
for (int j2 = 0; j2 < flag.length; j2++) {
if (!flag[j2]) {
re[reIndex++] = j2;
if (reIndex == k) {
break;
}
}
}
return re;
}
}
return IntStream.range(0, k).toArray();
}
}
class Solution {
public boolean isAnagram(String s, String t) {
char[] sChars = s.toCharArray();
char[] tChars = t.toCharArray();
Arrays.sort(sChars);
Arrays.sort(tChars);
return String.valueOf(sChars).equals(String.valueOf(tChars));
}
}
class Solution {
public int maxSubArray(int[] nums) {
int max=Integer.MIN_VALUE, i=0,sum=0;
while (i<nums.length) {
if (sum+nums[i]<nums[i]) {
sum=0;
}
sum+=nums[i];
if (sum>max) {
max=sum;
}
i++;
}
return max;
}
}
class Solution {
public void merge(int[] A, int m, int[] B, int n) {
int k = m+n-1,i=m-1,j=n-1;
while(i>=0&&j>=0) {
if (A[i]<B[j]) {
A[k--]=B[j--];
}else {
A[k--]=A[i--];
}
}
while(j>=0) A[k--]=B[j--];
}
}