文章目录
IDEA利用插件可以在本地很方便地管理、运行、调试、上传LeetCode,他提供了代码模板,可以自动命名文件等一系列快捷人性化的操作。
截止目前使用的软件版本:
截止:2021年12月17日
IDEA:IntelliJ IEDA 2021.2.3
LeetCode Editor:7.3 shuzijun
插件名称:LeetCode Editor
此外还有其它插件,但几乎都是收费的,LeetCode Editor也有收费的Pro版,具体功能还没测试。
安装插件:
File ==>Settings ==> Plugins ==> 搜索LeetCode ==> install LeetCode Editor
配置LeetCode Editor
File ==>Settings ==> Tools ==> LeetCode Plugins ==> 具体配置如图
文件名格式模板
为了便于本地调试,需要文件命名与主类名相同,否则IDEA不能运行和debug
$!velocityTool.camelCaseName(${question.titleSlug})
代码模板
一个主函数类加一个提交模板类
package leetcode.editor.cn;
${question.content}
public class $!velocityTool.camelCaseName(${question.titleSlug}){
public static void main(String[] args){
Solution solution = new $!velocityTool.camelCaseName(${question.titleSlug}).new Solution();
}
}
最终代码
两数之和的案例
package leetcode.editor.cn;
//给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
//
// 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
//
// 你可以按任意顺序返回答案。
//
//
//
// 示例 1:
//
//
//输入:nums = [2,7,11,15], target = 9
//输出:[0,1]
//解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
//
//
// 示例 2:
//
//
//输入:nums = [3,2,4], target = 6
//输出:[1,2]
//
//
// 示例 3:
//
//
//输入:nums = [3,3], target = 6
//输出:[0,1]
//
//
//
//
// 提示:
//
//
// 2 <= nums.length <= 10⁴
// -10⁹ <= nums[i] <= 10⁹
// -10⁹ <= target <= 10⁹
// 只会存在一个有效答案
//
//
// 进阶:你可以想出一个时间复杂度小于 O(n²) 的算法吗?
// Related Topics 数组 哈希表 👍 12887 👎 0
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class TwoSum{
public static void main(String[] args){
Solution solution = new Solution();
int[] nums = {2,7,11,15};
System.out.println(Arrays.toString(solution.twoSum(nums, 9)));
}
}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> m = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if (m.get(target - nums[i]) != null) {
return new int[]{m.get(target - nums[i]), i};
}
m.put(nums[i], i);
}
return new int[]{0, 0};
}
}
//leetcode submit region end(Prohibit modification and deletion)
说明:其中//leetcode submit region begin(Prohibit modification and deletion)
和//leetcode submit region end(Prohibit modification and deletion)
之间的是提交的部分,和原网站上的内容一致,只有标出这一段注释插件才会识别,所以不能删除,其余部分的注释可以看心情删除。
使用
首先配一下文件格式
当前LeetCode Editor版本下的文件自动生成的目录格式:
LeetCode
├── editor
│ ├── cn
│ │ ├── doc
│ │ │ └── java文件
│ │ │ └── 其余题解,讨论等文件
自动生成文件不是IDEA的命名格式,所以不能运行和调试,需要把LeetCode中的editor文件改成源文件,如图
File ==> Project Structure ==> Modeules ==>
插件按钮在IDEA右下角
点一下就会出现相关题目,在配置的时候可能没有登录进去,这时候需要用cookie登录(下一节),登录进去接下来的操作自己摸索就OK了。
cookie登录
先点击这个按钮,会出现一个对话框,在对话框中输入cookie就OK了
如何找到网站的cookie呢,用浏览器打开力扣官网,登录自己的账号,按F12进去开发者模式,我用的是edge浏览器。如果右边没有内容,刷新一下页面就OK。