天天看点

ARTS-第12周(2019.09.15)每周完成一个ARTS:(Algorithm、Review、Tip、Share, ARTS)**

每周完成一个ARTS:(Algorithm、Review、Tip、Share, ARTS)**

1.Algorithm 每周至少做一个 leetcode 的算法题-主要是为了编程训练和学习

2.Review 阅读并点评至少一篇英文技术文章-主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手

3.Tip 学习至少一个技术技巧-主要是为了总结和归纳你在是常工作中所遇到的知识点

4.Share – 分享一篇有观点和思考的技术文章-主要是为了建立你的影响力,能够输出价值观

Algorithm

报数

package com.honglekai.algorithm.easy;

/**
 * description
 * 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:
 *
 * 1.     1
 * 2.     11
 * 3.     21
 * 4.     1211
 * 5.     111221
 *
 * 1 被读作  "one 1"  ("一个一") , 即 11。
 * 11 被读作 "two 1s" ("两个一"), 即 21。
 * 21 被读作 "one 2",  "one 1" ("一个二" ,  "一个一") , 即 1211。
 *
 * 给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。
 *
 * 注意:整数顺序将表示为一个字符串。
 *
 * 示例 1:
 *
 * 输入: 1
 * 输出: "1"
 *
 * 示例 2:
 *
 * 输入: 4
 * 输出: "1211"
 *
 * 来源:力扣(LeetCode)
 * 链接:https://leetcode-cn.com/problems/count-and-say
 * 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
 * company YH
 *
 * @Author hcc
 * modifyBy
 * createTime 2019/9/15 23:55
 * modifyTime
 */
public class CountAndSay38 {

    /**
     * 解题思路:
     * 本题的难点在于:报数的概念理解,至少我从题意中没有很清晰的理解,但是感觉像是个递推式
     * 从4->5分析,将4个每一位拆开看(个数+数字),4=1211 => 1=11,2=12,11=21,所以5=111221
     * 所以解题用循环,从1->n可求解出来
     *
     * @param n
     * @return
     */
    public static String countAndSay(int n) {
        String str = "1";
        for (int i = 2; i <= n; i++) {
            StringBuilder builder = new StringBuilder();
            char pre = str.charAt(0);
            int count = 1;
            for (int j = 1; j < str.length(); j++) {
                char c = str.charAt(j);
                if (c == pre) {
                    count++;
                } else {
                    builder.append(count).append(pre);
                    pre = c;
                    count = 1;
                }
            }
            builder.append(count).append(pre);
            str = builder.toString();
        }

        return str;
    }

    public static void main(String[] args) {
        countAndSay(8);
    }

}

           

Review

DevOps Tools for Monitoring

Tip

1.如果涉及过多的相关方,沟通应该加强,确保上下游信息是同步的

Share

Java 泛型中的通配符 T,E,K,V,?,你确定都了解吗?

继续阅读