前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第01期 ARTS 打卡计划

第01期 ARTS 打卡计划

作者头像
闻人的技术博客
发布2020-05-29 10:54:26
3050
发布2020-05-29 10:54:26
举报

一个需要持续地坚持的高效学习项目,每周写一个ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点; 关于 ARTS:https://tva1.sinaimg.cn/large/007S8ZIlly1gf3w32cfuxj30u01hcwj5.jpg

Algorithm:整数反转

题目:Leetcode-7. 整数反转

地址:https://leetcode-cn.com/problems/reverse-integer/

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31-1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

思路:取模比较

普通方式是先将整数转换为字符串,然后分割每个字符进行处理,然后再转换成数字返回,但是涉及一些库函数效率不高,所以不推荐使用; 另一种方式采用数学计算,从末尾开始将每一位x拆开(x/=10),用 y*10+x 方式逐步还原,还原前都要判断是否存在溢出情况,直到数字首位(x/10==0)。其中溢出的情况在于翻转到9位数时比 2147483647/10 大,或者与 2147483647/10 相等但是 x 比 7 大,反之负数也如此。

解法 数学计算

时间复杂度:O(log(x)),空间复杂度:O(1)

public class Solution7 {
    public int reverse(int x) {
        int z = 0;
        while (x != 0) {
            //每次取末尾数字
            int y = x % 10;
            // 获取剩下的数
            x /= 10;
            if (z > Integer.MAX_VALUE / 10 || (z == Integer.MAX_VALUE / 10 && y > 7)) {
                // 正数溢出判断
                return 0;
            }
            if (z < Integer.MIN_VALUE / 10 || (z == Integer.MIN_VALUE / 10 && y < -8)) {
                // 负数溢出判断
                return 0;
            }
            // 翻转过程的中间数字
            z = z * 10 + y;
        }
        return z;
    }
}

Review:JUnit 5 tutorial, part 2: Unit testing Spring MVC with JUnit 5

原文来源:JavaWorld

https://www.javaworld.com/article/3543268/junit-5-tutorial-part-2-unit-testing-spring-mvc-with-junit-5.html

阅读评论:Spring 程序的 JUnit 5 实战

该文章主要写了 JUnit 5 基于 Spring 框架如何做各模块的单元测试,附带代码示例说明,对于 Service 层用结合 Mockito 编写测试;对于 Web 层用 @AutoConfigureMockMvc 和 MockMvc 编写测试;对于 Repository 层结合 DBUnit 来编写测试。每一模块都有详细的示例代码和涉及的 API 说明,对打算在 Spring 程序中用 JUnit5 编写测试的开发人员有很高的参考价值。

Tip:如何更快用 grep 查关键行的上下文日志

主题:grep 的参数 -A 与 -B 用法

普通的 grep keyword file 只能匹配出文件中包含了 keyword 内容的每一行,无法获取到该行的上下文信息。如果想要获取关键字所在行和之前 n 行的信息,可以用选择参数 -B n 指定要显示之前的行数,这里的 B 为 Before 的缩写;想获取之后 n 行的信息,使用 -A n 指定要显示之后的行数,A 就是 After 的缩写;如果需要前后各自显示同等 n 行内容,直接用 grep -n keyword file 即可。

// 额外显示之后的一行
grep -A 1 keyword file

// 额外显示之前的一行
grep -B 1 keyword file

// 额外显示前后各一行
grep -1 keyword file

Share:《后端存储实战课》学习小结

主要内容:学习收获与个人思考

分享个人对学完极客时间专栏 《后端存储实战课》 之后的技术收获和自我当下状态的思考。

文章地址:《后端存储实战课》学习小结

https://www.yuque.com/wenren/system/done

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 闻人的技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Algorithm:整数反转
    • 题目:Leetcode-7. 整数反转
      • 思路:取模比较
        • 解法 数学计算
        • Review:JUnit 5 tutorial, part 2: Unit testing Spring MVC with JUnit 5
          • 原文来源:JavaWorld
            • 阅读评论:Spring 程序的 JUnit 5 实战
            • Tip:如何更快用 grep 查关键行的上下文日志
            • Share:《后端存储实战课》学习小结
              • 主要内容:学习收获与个人思考
                • 文章地址:《后端存储实战课》学习小结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档