先上每日一题看看
1015. 可被 K 整除的最小整数
难度中等147收藏分享切换为英文接收动态反馈
给定正整数 k
,你需要找出可以被 k
整除的、仅包含数字 1
的最 小 正整数 n
的长度。
返回 n
的长度。如果不存在这样的 n
,就返回-1。
注意: n
不符合 64 位带符号整数。
示例 1:
输入:k = 1 输出:1 解释:最小的答案是 n = 1,其长度为 1。
示例 2:
输入:k = 2 输出:-1 解释:不存在可被 2 整除的正整数 n 。
示例 3:
输入:k = 3 输出:3 解释:最小的答案是 n = 111,其长度为 3。
提示:
1 <= k <= 105
我一看返回的位数可能得有几十,枚举数是不可能了,于是我想了想,可以枚举余数啊
如 11%3=2 111%3=(2*10+2)%3
就是因为下一位数 是固定的乘以10+1就是对上个数的余数乘以10再加1除以被除数
但是 偶数和可以被5除以的整数是不可能有答案的,余数不会有任何的变化
其他的数都会有结果的,但是我不会证明
没关系你只要知道就可以了,其实也是可以用hash表的,把除出来的结果,记录到hash表数据不到
就1*10 5开的空间不大,遇到余数有了的就直接返回false,不然就继续判断直到出现0为止
int smallestRepunitDivByK(int k){
if(k%2==0||k%5==0){
return -1;
}
int yu=1%k;
int ans=1;
while(yu!=0){
yu=(yu*10+1)%k;
ans++;
}
return ans;
}
代码是真的简单的哈哈
来用java写一下代码
太习惯用c了,学了java用的太少了,从今天开始要用java 写点简单的题目
不要用到数据结构的(还不知道用)
9. 回文数
难度简单2526收藏分享切换为英文接收动态反馈
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121
是回文,而123
不是。
示例 1:
输入:x = 121 输出:true
示例 2:
输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
思路用把数字转换成,string然后前后对比
上代码加注释吧
class Solution {
public boolean isPalindrome(int x) {
StringBuilder s=new StringBuilder();//先把数字转换
while(x!=0){
s.append(x%10);
x=x/10;
}//一位一位的取
String sr=s.toString();//变成字符串,倒过来也没关系,应为倒了还是回文数
int h=0;
for(h=0;h<sr.length()/2;h++){
char i=sr.charAt(h);//取前后对应位置的判断
char l=sr.charAt(sr.length()-h-1);
if(i!=l){
break;
}
}
if(h>=sr.length()/2){//完整的执行了就是回文数
return true;
}
else{
return false;
}
}
}
时间复杂度,简直目不可视
要快点也可以的,就是好像和c就没啥区别了,要用就用特色的
java今天学习了,关于继承的一些底层
首先
1父亲的构造方法是不可以继承的要用的话要 super调用
2父亲的成员变量都是会继承的,但是有priavte修饰的父亲的变量是不可以调用的,要用就得用get和set方法去调
3继承的方法会以虚方法表继承下来,pravite,final,static是不会进入进入虚方法表的,所以是不可以调用的
多了不写了,
拍照记录
ok休息,最近虚了,不能熬了
要早早睡了
撒花谢幕
明天见