美文网首页
LeetCode ZigZag Conversion

LeetCode ZigZag Conversion

作者: MelodyIsUVoice | 来源:发表于2017-01-23 17:27 被阅读5次

    解题思路

    划一划就出来了,枚举下3和5的索引树就可以看出规律来。
    第一行和最后一行为一类以初始位置递增(单一递增数列),其他行为一类(以初始两个位置分别递增,两个递增序列叠加)

    
    /**
     * @param {string} s
     * @param {number} numRows
     * @return {string}
     * 
     * 1      9         17   8
     * 2    8 10     16 18   2 8
     * 3  7   11   15   19   3 7
     * 4 6    12 14     20   4 6
     * 5      13        21   5
     * 
     * 1   5   9     13 1  4
     * 2 4 6 8 10 12 14 2 4 4
     * 3   7   11    15 3  4
     * 
     */
    var convert = function(s, numRows) {
        var re = "";
        for (var i = 0; i < s.length ; i += 2*numRows -2) {
            re += s[i]
        }
        for(i = 1;  i < numRows - 1; i++) {
            var k1 = i;
            var k2 = 2*numRows - i;
            while (k1 < s.length || k2 < s.length) {
                if (k1 < s.length) {
                    re += s[k1];
                    k1 += 2*numRows - 2;
                }
                if (k2 < s.length) {
                    re += s[k2];
                    k2 += 2*numRows - 2;
                }
            }
        }
        for (i = numRows; i < s.length; i += 2*numRows -2) {
            re += s[i];
        }
        return re;
    };
    

    相关文章

      网友评论

          本文标题:LeetCode ZigZag Conversion

          本文链接:https://www.haomeiwen.com/subject/gxxauttx.html