1. 数字反转返回数字
- 输入:123
- 返回:321
public static int reversalNum(int num) {
int result = 0;//返回的目标数字
while (num != 0) {
int m = num % 10;//取原数字的个位数
result = result * 10 + m;//反转
num /= 10;//原数字截取(从个位往高位开始)
}
return result;
}
2.判断是否为回文数
判断一个正数是否是回文数,回文数是指正序(从左到右) 和 倒叙(从右到左) 读 都是一样的整数
- 输入:123;返回:false
- 输入:1221;返回:true
public static boolean huiWenShu(int num) {
int copyn = num;
// 调用上面数字反转方法
int aaa = fanZhuan(num);
if (copyn != aaa) {
return false;
}
return true;
}
3.删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,注意:
你不需要考虑数组中超出新长度后面的元素
- 示例:
给定 nums={0,0,1,1,1,2,2,3,3,4};
函数应该返回新的长度 5 ,并原数组 nums的前5个元素被修改为 0,1,2,3,4
你不需要考虑数组中超出新长度后面的元素
public static int deleteRepeatElements(int[] arr) {
int length = 1;//慢指针
for (int i = 0; i < arr.length - 1; i++) {
//i相当于快指针
if (arr[length - 1] != arr[i + 1]) {
arr[length] = arr[i + 1];
length++;
}
}
return length;
}
4.移除指定元素
给定一个数组 nums 和一个值 val 你需要原地移除所有数值等于val的元素,返回移除后数组的新长度,不要使用额外的数组空间
注意:
元素的顺序可以改变,你不需要考虑数组中超出新长度后面的元素
- 示例:
给定 nums = {3,2,2,3}; val = 3;
函数应该返回新的长度 2 , 并且 nums中的前两个元素均为 2
你不需要考虑数组中超出新长度后面的元素
//也是快慢指针
public static int removeElements(int[] arr, int var) {
int length = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != var) {
arr[length] = arr[i];
length++;
}
}
return length + 1;
}