求一个数反转后是否仍然和原来的数一样
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
System.out.println(isPalindrome(num));
}
public static boolean isPalindrome(int x) {
int res=0;
int num=x;
if(x>=0) {
while(x!=0){
int temp=x%10;
x=x/10;
res=res*10+temp;
}
if(res==num){
return true;
}
else {
return false;
}
}
return false;
}
运行结果:
将数组进行拆分成若干数组使每个相加后为0
public static void main(String args[]) {
//数组及魅族的个数可自定义
System.out.println(threeSum(new int[] {0,1,2,3,-4,-2,-8}));
}
public static List<List<Integer>> threeSum(int[] nums) {
if (nums == null || nums.length < 3)
return new ArrayList<>();
Set<List<Integer>> res = new HashSet<>();
Arrays.sort(nums);
// O(n^3)
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
for (int k = j + 1; k < nums.length; k++) {
if (nums[i] + nums[j] + nums[k] == 0) {
res.add(Arrays.asList(nums[i], nums[j], nums[k]));
}
}
}
}
return new ArrayList<>(res);
}
运行结果: