ARTS是什么?

Algorithm:每周至少做一个LeetCode的算法题 Review:阅读并点评至少一篇英文文章 Tip:学习至少一个技术技巧 Share:分享一篇有观点和思考的技术文章

Algorithm

  1. import java.util.Comparator;
  2. import java.util.HashMap;
  3. import java.util.LinkedList;
  4. import java.util.List;
  5. /**
  6. * @className: Algorithm1
  7. * @description:
  8. * 有一排 26 个彩灯,编号从 0 到 25,现在给出了一系列控制指令来控制这些彩灯的开关。
  9. * 一开始这些彩灯都是关闭的,然后指令将逐条发出。
  10. * 在每条指令operation[i]中含有两个整数 operation[i][0], operation[i][1]。
  11. * 在接收到一条指令时,标号为 operation[i][0] 的彩灯会亮起,直到第 operation[i][1] 秒的时候熄灭。当灯熄灭后,下一条指令将会发出。也就是说,任何时候只会有一盏灯亮着。
  12. * 其中第一条指令将在第0秒的时候发出,并被立刻执行。
  13. * 你的任务是找到哪个彩灯单次亮起的时间最长。
  14. *
  15. * 样例 1
  16. *
  17. * 输入:
  18. * [[0,2],[1,5],[0,9],[2,15]]
  19. * 输出:
  20. * 'c'
  21. * 说明:
  22. * operation = `[[0, 2], [1, 5], [0, 9], [2, 15]]`
  23. * 在第0秒的时候,接收到指令`[0, 2]`,此时标号为 0 的灯亮起,第 2 秒的时候熄灭。此时 0号灯 的单次亮起时间为`2-0 = 2` 秒。
  24. * 在第2秒的时候,接收到指令`[1, 5]`,此时标号为 1 的灯亮起,第 5 秒的时候熄灭。此时 1号灯 的单次亮起时间为 `5-2 = 3` 秒。
  25. * 在第5秒的时候,接收到指令`[0, 9]`,此时标号为 0 的灯亮起,第 9 秒的时候熄灭。此时 0号灯 的单次亮起时间为 `9-5 = 4` 秒。
  26. * 在第9秒的时候,接收到指令`[2, 15]`,此时标号为 2 的灯亮起,第 15 秒的时候熄灭。此时 2号灯 的单次亮起时间为 `15-9 = 6` 秒。
  27. * 所以单次亮起的最长时间为 `max(2, 3, 4, 6) = 6` 秒,是标号为 `2` 的彩灯。
  28. *
  29. * **你需要返回一个小写英文字母代表这个编号。`如 'a' 代表 0,'b' 代表 1,'c' 代表 2 ... 'z' 代表 25。`**
  30. * 所以你的答案应该是`'c'`
  31. * @author: Miluo
  32. * @date: 2021/8/11
  33. **/
  34. public class LintCode02 {
  35. public char longestLightingTime(List<List<Integer>> operation) {
  36. // write your code here
  37. long maxTime = 0;
  38. char maxLight = 'a';
  39. for (int i = 1; i < operation.size(); i++) {
  40. long time = operation.get(i).get(1) -operation.get(i - 1).get(1);
  41. if (time > maxTime) {
  42. maxTime = time;
  43. maxLight = (char) ((char) 'a' + operation.get(i).get(0));
  44. }
  45. }
  46. return maxLight;
  47. }
  48. }

Review

10 excellent GitHub repositories for every Java developer

Tip

Mybatis-plus的LambdaQueryWrapper,可避免硬编码

  1. @Data
  2. @TableName("user")
  3. public class User{
  4. @TableId(Value = "id",type = IdType.AUTO)
  5. private Long id;
  6. @TableField("name)
  7. private String name;
  8. @TableField("sex)
  9. private String sex;
  10. @TableField("phone)
  11. private String phone;
  12. }
  1. QueryWrapper<User> wrapper = new QueryWrapper();
  2. wrapper.eq("name",name);
  1. LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper();
  2. wrapper.eq(User::getName,name);

Share

你不适合做程序员[

](https://www.raychase.net/3395)