想要快速变成强者吗?最基础的练习方式就是解题。在解题的过程中,会训练逻辑思考能力,同时也会增加对程序语言的熟悉度。在此要介绍两个练习网站: ZeroJude 高中生程序解题系统和 LeetCode。
许多公司在面试时,都会查看 LeetCode 的解题数,很多白板题也是从题库中出来的,可以想见解题可以用来判断一个人在程序的能力。LeetCode 是全英文介面,题目也都是英文,因此对初学者来说有一定的难度。
创建完帐号後,点选左上角的 Problems,就可以看到题目列表
此页面会提供题目的正答率与难易度,可以依据自行喜好选择要撰写之题目,以下以第一题当作范例:
左手边是题目叙述,右手边是程序法撰写,撰写完成後可以点选右下角执行测试,完成後就可以按下旁边的按钮上传
上传後若是答对就可以查看执行速度和记忆体使用率和与其他使用者相比下的比率。
在线上解题时,有一些常见的术语,可以得知解题情况:
简写 | 全称 | 中文称谓 |
---|---|---|
AC | Accepted | 通过 |
WA | Wrong Answer | 答案错误 |
TLE | Time Limit Exceed | 超时 |
OLE | Output Limit Exceed | 超过输出限制 |
MLE | Memory Limit Exceed | 超过记忆体 |
RE | Runtime Error | 执行时错误 |
PE | Presentation Error | 格式错误 |
CE | Compile Error | 无法编译 |
虽然 LeetCode 是许多企业认证的解题网站,但对初学者来说门槛颇高,所以建议大家可以从 ZeroJudge 高中生程序解题系统入门,介面是中文,和 LeetCode 差异不大,比较特别的是在题目列有 Tag 显示该题目的考点,所以在选择题目上可能较为方便,除此之外也有多种题库可供选择。
那今天就带大家来写题目吧!
基础题库 a010 因数分解
import java.util.Scanner;
public class ZeroJudge{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int count;
for(int i = 2; i <= num ; i++){
count = 0;
while(num % i == 0){
num /= i;
count++;
}
if(count > 1){
System.out.print(i + "^" + count);
if(num != 1){
System.out.print(" * ");
}
}
else if(count == 1){
System.out.print(i);
if(num != 1){
System.out.print(" * ");
}
}
}
sc.close();
}
}
基础题库 a740 质因数之和
解题思路:先用质数判断是否可整除,再将所有可整除数相加。
这题与上题类似,大家可以回家自行练习看看,还有许多题目都可以多加练习,若是每天花个一小时,不用多久你就可以超越我了!
>>: 系统弱点扫描工具-Tenable Nessus(上)
初次见面 虽然 TaiwindCSS 於 2019 年发表,当时我正开始学习前端技术,对於此领域还...
上一篇介绍了 Electron 的架构,今天来了解一下它到底有什麽 API 供我们使用~ (图片来源...
有些时候需要看外文网页,而外文里可能有许多单字,或是看外文的速度没有那麽快,阅读起来会很辛苦。这时如...
纪录一下最近遇到的问题 一支异动订单的API ,称作 Patch Order,在一秒内被打了两次,造...
上一篇提到 JavaScript 是弱型别语言。 强型别语言在变数被宣告的时候必须指定资料型别给它,...