一.知识点总结
1.认识了java项目编写的基本结构:
项目->模块->文件->类->方法
2.掌握了java中输入和输出:
输入->Scanner类(导包,创建对象,接收数据);
输出->System.out.printfln();
3.随机数类的使用
导包,创建对象(Random r=new Random()),生成随机数(r.nextInt(bound ___));
4.标准JavaBean的编写
类名要见名知意;
成员变量用private;
用两个构造方法;
成员方法提供set和get方法;
5.this关键字
用于区分成员变量和局部变量
6.字符串的比较
boolen __.equals(___); 二者完全一样则true
boolen __.equalslgnoreCase(___); 忽略大小写
7.快捷键
ctrl+Alt+M 自动抽取方法
Shift+F6 批量修改
ctrl+Alt+T 全选并将其包括在whilt等操作中
Alt+insert 快速生成JavaBean类
二.力扣题
1.题目:给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
思路:
1.先将整数x 取余10,得到个位数,再得到除了个位数之外的整数,
2再重复操作,这次将上次得到的个位数乘10,再加上这次得到的个位数,如此便将原来最小的位数变成最大的位数;
3.依次将x中的数取出,加到反转的数中,得到结果。
class Solution {
public int reverse(int x) {
int result = 0;
while (x != 0) {
if (result > Integer.MAX_VALUE / 10 || (result == Integer.MAX_VALUE/10 && x % 10 > 7)) {
return 0;
}
if (result < Integer.MIN_VALUE / 10 || (result == Integer.MIN_VALUE/10 && x % 10 < -8)) {
return 0;
}
result = result * 10 + x % 10;
x = x / 10;
}
return result;
}
}
2.题目:给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 target
的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
思路:利用双指针遍历数组。
假定数组为[1,2,3,4],目标为3
1.先用一个慢指针指向1,再用一个快指针指向2,快指针遍历慢指针之后所有数后,慢指针指向下一个数直到最后一个,
2.将快,慢指针指向的数相加与目标比较,若相等则返回指针下标;若不等,则用throw关键词警示。
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i =0;i<nums.length;i++){
for(int j = i + 1;j<nums.length;j++){
if(nums[j] == target - nums[i]){
return new int[]{i,j};
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
}
3.题目:
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
思路:
1.判断x的正负,若为负,则返回false;
2.先将整数x 取余10,得到个位数,再得到除了个位数之外的整数,
3再重复操作,这次将上次得到的个位数乘10,再加上这次得到的个位数,如此便将原来最小的位数变成最大的位数;
4.依次将x中的数取出,加到反转的数中,得到反转数。
5.将反转数与原数比较,
若相等则返回true;
若不等,则返回false.
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
int inserve = 0;
int Init=x;
while (x != 0) {
int rest=x%10;
inserve=inserve*10+rest;
x/=10;
}
if(Init==inserve){
return true;
}else{
return false;
}
}
}