给你一个由 正 整数组成的数组 nums 。
你必须取出数组中的每个整数,反转其中每个数位,并将反转后得到的数字添加到数组的末尾
返回结果数组中 不同 整数的数目。

public int countDistinctIntegers(int[] nums) {
int[] arr = new int[nums.length * 2];
arraycopy(nums, 0, arr, 0, arr.length / 2);
for (int j = 0; j < nums.length; j++) {
int temp = nums[j];
while (temp % 10 == 0) temp /= 10;
int a = 0;
while (temp != 0) {
a = a * 10 + temp % 10;
temp /= 10;
}
arr[nums.length + j] = a;
}
int count = 0;
sort(arr);
for (int i = 0; i < arr.length - 1; i++)
if (arr[i] == arr[i + 1]) count++;
return arr.length-count;
}

给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,
确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
public boolean CheckPermutation(String s1, String s2) {
if (s1.length() != s2.length()) {
return false;
}
char[] s3 = s1.toCharArray();
char[] s4 = s2.toCharArray();
Arrays.sort(s3);
Arrays.sort(s4);
return Arrays.equals(s3, s4);
}

给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:
如果存在,请返回 true ;否则,返回 false 。
public boolean threeConsecutiveOdds(int[] arr) {
for (int i = 0; i < arr.length - 2; i++)
if (arr[i] % 2 == 1 & arr[i + 1] % 2 == 1 & arr[i + 2] % 2 == 1) return true;
return false;
}

给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。
public boolean validMountainArray(int[] arr) {
int i, j;
for (i = 0; i + 1 < arr.length && arr[i] < arr[i + 1]; i++) {}
if (i == 0 | i == arr.length - 1) return false;
for (j = i; j + 1 < arr.length && arr[j] > arr[j + 1]; j++) {}
return j == arr.length - 1;
}

给你一个整数 n。请你先求出从 1到 n 的每个整数 10 进制表示下的数位和
(每一位上的数字相加),然后把数位和相等的数字放到同一个组中。
请你统计每个组中的数字数目,并返回数字数目并列最多的组有多少个。
public int countLargestGroup(int n) {
int count_1 = 0, i = 1, max = 1;
int[] count = new int[40];
int[] sum = new int[n + 1];
while (i <= n) {
sum[i] = sum[i / 10] + i % 10;
count[sum[i]]++;
if (count[sum[i]] > max)
max = count[sum[i]];
i++;
}
for (int j : count)
if (j == max) count_1++;
return count_1;
}

posted on 2023-04-01 20:58  雨霁留虹霓  阅读(50)  评论(0)    收藏  举报