本文来源于算法面试题特训专栏,这里有大量专业性的算法题比如(动态规划21天,大厂特训28天等等)
欢迎大家一起学习。
链接:传送门
在刚刚结束的 每日算法&面试题,大厂特训二十八天 和 冲刺大厂每日算法&面试题,动态规划21天 的训练中我们一起打卡走了过来。但是学习不能停呀相信许多小伙伴也从之前的练习中取得了不错的成绩,从今天开始我们开始Java集训(算法&&面试题)第一天接着卷起来。
特别介绍
小白练手专栏,适合刚入手的新人以及考python二级的同学欢迎订阅编程小白进阶
python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏
另外想学JavaWeb进厂的同学可以看看这个专栏:传送们
这是个冲刺大厂面试专栏还有算法比赛练习我们一起加油 上岸之路
为了简单只得了五十分,欢迎高手们前来有奖投稿哦
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int ans=0,n=sc.nextInt();
int[] arr=new int[100000];
int[] arr2=new int[100000];
flag:for(int i=1;i<1000000;i++) {
for(int j=0;j<i;j++) {
if(j==0||j==(i-1)) {
arr2[j]=1;
ans++;
}else {
arr2[j]=arr[j]+arr[j-1];
ans++;
}
if(arr2[j]==n)break flag;
}
System.arraycopy(arr2, 0, arr, 0, i);
}
System.out.println(ans);
}
}
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long n=(int)(sc.nextLong()/1000);
int h=(int) (n/3600);
int m=(int) ((n-h*3600)/60);
int s=(int) (n-h*3600-m*60);
if(s>59) {
m=m+(int)(s/60);
s=s%60;
}
if(m>59) {
h=h+(int)(m/60);
m=m%60;
}
if(h>23) {
h=h%24;
}
System.out.printf("%02d:%02d:%02d",h,m,s);
}
}
String 为什么要设计成不可变的?
字符串常量池需要 String 不可变。因为 String 设计成不可变,当创建一个 String 对象
时, 若此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的
对象。 如果字符串变量允许必变,会导致各种逻辑错误,如改变一个对象会影响到另一个
独立对象。
String 对象可以缓存 hashCode。字符串的不可变性保证了 hash 码的唯一性,因此可
以缓 存 String 的 hashCode,这样不用每次去重新计算哈希码。在进行字符串比较时,
可以直接比较 hashCode,提高了比较性能;
安全性。String 被许多 java 类用来当作参数,如 url 地址,文件 path 路径,反射机
制所 需的 Strign 参数等,若 String 可变,将会引起各种安全隐患。
Redis 常见的几种数据结构说一下?各自的使用场景?
string
介绍:string 数据结构是简单的 key-value 类型。
使用场景: 一般常用在需要计数的场景,比如用户的访问次数、热点文章的点赞转发数量等
等。
list
介绍:list 即是 链表
使用场景:发布与订阅或者说消息队列、慢查询。
hash
介绍:hash 类似于 JDK1.8 前的 HashMap,内部实现也差不多(数组 + 链表)。
使用场景:系统中对象数据的存储。
set
介绍:set 类似于 Java 中的 HashSet 。Redis 中的 set 类型是一种无序集合,集合中的元
素没有先后顺序。当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的
选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不
能提供的。可以基于 set 轻易实现交集、并集、差集的操作
使用场景: 需要存放的数据不能重复以及需要获取多个数据源交集和并集等场景。
sorted set
介绍:和 set 相比,sorted set 增加了一个权重参数 score,使得集合中的元素能够按
score 进行有序排列,还可以通过 score 的范围来获取元素的列表。有点像是 Java 中
HashMap 和 TreeSet 的结合体。
使用场景:需要对数据根据某个权重进行排序的场景。比如在直播系统中,实时排行信息包含
直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等
信息。
bitmap
介绍:bitmap 存储的是连续的二进制数字(0 和 1),通过 bitmap, 只需要一个 bit 位来表
示某个元素对应的值或者状态,key 就是对应元素本身 。我们知道 8 个 bit 可以组成一个
byte,所以 bitmap 本身会极大的节省储存空间。。
使用场景:适合需要保存状态信息(比如是否签到、是否登录...)并需要进一步对这些信息进
行分析的场景。比如用户签到情况、活跃用户情况、用户行为统计(比如是否点赞过某个视
频)。
这里有python,Java学习资料还有有有趣好玩的编程项目,更有难寻的各种资源。反正看看也不亏。