[Day20] 来决斗吧——ZeroJudge & LeetCode 解题

想要快速变成强者吗?最基础的练习方式就是解题。在解题的过程中,会训练逻辑思考能力,同时也会增加对程序语言的熟悉度。在此要介绍两个练习网站: ZeroJude 高中生程序解题系统和 LeetCode。

许多公司在面试时,都会查看 LeetCode 的解题数,很多白板题也是从题库中出来的,可以想见解题可以用来判断一个人在程序的能力。LeetCode 是全英文介面,题目也都是英文,因此对初学者来说有一定的难度。

https://ithelp.ithome.com.tw/upload/images/20210920/20140066ntVjoKAZrC.png

创建完帐号後,点选左上角的 Problems,就可以看到题目列表

https://ithelp.ithome.com.tw/upload/images/20210920/20140066C4jNvZGCvu.png

此页面会提供题目的正答率与难易度,可以依据自行喜好选择要撰写之题目,以下以第一题当作范例:

左手边是题目叙述,右手边是程序法撰写,撰写完成後可以点选右下角执行测试,完成後就可以按下旁边的按钮上传

https://ithelp.ithome.com.tw/upload/images/20210920/20140066tKZILB69bR.png

上传後若是答对就可以查看执行速度和记忆体使用率和与其他使用者相比下的比率。

https://ithelp.ithome.com.tw/upload/images/20210920/20140066bjbJFHZ7yz.png

在线上解题时,有一些常见的术语,可以得知解题情况:

简写 全称 中文称谓
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 显示该题目的考点,所以在选择题目上可能较为方便,除此之外也有多种题库可供选择。

https://ithelp.ithome.com.tw/upload/images/20210920/20140066mL0z3wQfJT.png

那今天就带大家来写题目吧!

基础题库 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 质因数之和

解题思路:先用质数判断是否可整除,再将所有可整除数相加。

这题与上题类似,大家可以回家自行练习看看,还有许多题目都可以多加练习,若是每天花个一小时,不用多久你就可以超越我了!


<<:  Day 6 作业系统

>>:  系统弱点扫描工具-Tenable Nessus(上)

TailwindCSS 从零开始 - 写在前面

初次见面 虽然 TaiwindCSS 於 2019 年发表,当时我正开始学习前端技术,对於此领域还...

Electron - 常用 API 解析

上一篇介绍了 Electron 的架构,今天来了解一下它到底有什麽 API 供我们使用~ (图片来源...

电子书阅读器上的浏览器 [Day19] 翻译功能 (I) 支援 Onyx 内建翻译

有些时候需要看外文网页,而外文里可能有许多单字,或是看外文的速度没有那麽快,阅读起来会很辛苦。这时如...

[心得]资料异动行为,需要有意识的风险管理

纪录一下最近遇到的问题 一支异动订单的API ,称作 Patch Order,在一秒内被打了两次,造...

[Day03] 基本型别

上一篇提到 JavaScript 是弱型别语言。 强型别语言在变数被宣告的时候必须指定资料型别给它,...