每周学算法/读英文/知识点心得分享 2.4 - 2.8

每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!

Algorithm: 学习算法

题目:https://leetcode.com/problems/zigzag-conversion/

解题过程:

刚开始没看懂什么意思,看了两遍,明白是把字符串从上至下按照锯齿形排列,然后按行输出。 根据题目提示可以继续做一下延伸,把1-20 按 n=5 自己排列一下。

这种题一般有规律,找出要打印的字符在字符串里的下标,收集在一起就是结果了。

规律就是,同一行中 不同纵列里的数字间隔是2*n - 2(以n=5为例,2*n - 2 = 8 = 9-1 = 17-9 )。从第二行开始,每两个纵列之间隔一个数字,假定行数为i,该数字与前一个数字的interval 为 i+2*n-2-2(i-1) (第三行,i=3,n=5, 3+2*5-2-2(3-1) = 7)。

这里有两种循环规则,第二种依赖于第一种。我们用两遍循环去输出,第一层是按 i 行遍历,第二层是从 i 开始,间隔 2*n - 2 ,遍历。第二层循环里面寻找与 i 间隔 i+2*n-2-2(i-1) 的数。

另外一个小技巧,使用StringBuilder来拼接字符串。

解法:https://raw.githubusercontent.com/chy996633/leetcode/be515a6a088de4f0e882ccb4fc7cd9e1fcf5464d/src/ZigZagConversion.java

public class ZigZagConversion {

    public String convert(String s, int numRows) {
        if (numRows <= 1) return s;
        if (numRows == s.length()) return s;
        StringBuilder res = new StringBuilder();
        int x = 2 * numRows - 2;
        for (int i=0;i<numRows;i++) {
            for(int j=i;j<s.length();j +=x){
                res.append(s.charAt(j));
                int y = j + x - 2 * i;
                if (i != 0 && i != numRows-1 && y < s.length()) res.append(s.charAt(y));
            }
        }
        return res.toString();
    }

}

Review: 学习英文

题目:微服务文章 - Smart endpoints and dumb pipes

内容概述:这节没有太读懂,大意是微服务架构在终端是解耦 和 有凝聚力的,单个服务对外的通信基于轻量级机制,一般是基于HTTP协议 或 RESTful API。通信机制应当尽可能dumb,终端尽可能smart。

Stress 作为动词有强调之意。fabric 有布料/结构之意。fine-grained 细粒度。coarser-grained 粗粒度。

Tips: 知识点

Java中 @Transient 这个注解在Hibernate中用于标注不需要作持久化操作的字段。如果字段没有标注@Transient ,Hibernate会默认进行持久化,这时如果数据库表没有相应字段就会报错。

Share: 价值观

人生的结果 = 思维方式 * 热情 * 能力。 努力发展出看问题的不同角度,专注并且投入热情,加上能力,就可以做出好的结果。

原文地址:https://www.cnblogs.com/andrew-chen/p/10361840.html

时间: 2024-10-13 01:54:07

每周学算法/读英文/知识点心得分享 2.4 - 2.8的相关文章

每周学算法/读英文/知识点心得分享 1.28 - 2.1

每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目:String to Integer (atoi) 解题过程: 这题主要考虑异常情况,比如空字符串,开头 +/- ,非数字字符,空格,最大最小边界值处理.学到一个Char转Int技巧就是直接用字符减去‘0’获得差值就是数字. 第三次提交通过的. 解法:https://raw.githubusercontent.com/chy9966

每周学算法/读英文/知识点心得分享 3.4 - 3.8

每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目:Generate Parentheses 题目大意:给出n对小括号,求出括号匹配的情况,用列表存储并返回,例如:n=3时,答案应为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 解

1165: 零起点学算法72——首字母变大写

1165: 零起点学算法72--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 705  Accepted: 439[Submit][Status][Web Board] Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. Output 请输出按照要求改写后的英文句

高斯模糊算法的全面优化过程分享(二)。

      相关链接: 高斯模糊算法的全面优化过程分享(一) 在高斯模糊算法的全面优化过程分享(一)一文中我们已经给出了一种相当高性能的高斯模糊过程,但是优化没有终点,经过上一个星期的发愤图强和测试,对该算法的效率提升又有了一个新的高度,这里把优化过程中的一些心得和收获用文字的形式记录下来. 第一个尝试   直接使用内联汇编替代intrinsics代码(无效) 我在某篇博客里看到说intrinsics语法虽然简化了SSE编程的难度,但是他无法直接控制XMM0-XMM7寄存器,很多指令中间都会用内

1167: 零起点学算法74——Palindromes _easy version

1167: 零起点学算法74--Palindromes _easy version Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1754  Accepted: 1023[Submit][Status][Web Board] Description "回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.请写一个

我的WebX框架学习总结与心得分享

最近学习了webx框架, 利用博客园跟大家分享一下自己的学习心得; 周建旭 2014-08-21 网上关于webx的资料少的可怜, 怎么办?  这种情况下不用去求助别人求人只会耽误时间, 不用畏惧; 看文档写demo 就ok了; API是最好的资料, webx官方有个pdf的中文文档提供下载, 建议在学webx之前, 先整体浏览一遍文档以便于把握webx框架的大体脉络, 第一遍看的过程不必钻牛角尖 ; 然后结合淘宝官方Michael Zhou的Petstore(宠物商店)例子对比一下文档(那块不

1177: 零起点学算法84——Box of Bricks

1177: 零起点学算法84--Box of Bricks Time Limit: 1 Sec  Memory Limit: 32 MB   64bit IO Format: %lldSubmitted: 769  Accepted: 268[Submit][Status][Web Board] Description Little Bob likes playing with his box of bricks. He puts the bricks one upon another and

科注学习班心得分享-更新第9集

搜索 观看记录 视频手机站 文章手机站 全部导航 首页 净宗祖师大德 本网导师 无量寿经汇集 刘素云老师专集 佛号梵呗 往生见证 净土辑要 传统文化 直播 本周热搜词:无量寿经- 第10集无量寿经- 第5集无量寿经- 第11集无量寿经- 第7集无量寿经- 第6集繁體中文版 在线留言 首页  »  刘素云老师视频  »  学习班心得分享 » 一句佛号大总持 但念弥陀大事毕 随喜赞叹: 科注学习班心得分享-更新第9集 小题:一句佛号大总持 但念弥陀大事毕 主讲:刘素云老师 时间:2017-11-30

0基础学算法 第二弹 排序

大家好啊,这是0算法基础学算法系列第二篇,上次我在第一弹里讲了关于流程图的内容,我寻思着,这次讲些什么好呢,于是我决定,教大家一个很基础的算法,那就是排序,排序有很多方法,如果你有更多方法请在评论区里留言哦. 排序在程序中特别实用,常用的有快速排序,桶排序,冒泡排序,插入排序等等,在这里我不建议使用冒泡排序或者插入排序,建议桶排序和快速排序,这两个排序非常实用,时间复杂度低,理解起来也很容易,首先,你先思考一下,怎么用程序进行排序,然后你再来看看你的思路合理不合理,最后试着用程序实现它,实现后你