leetcode-数组复盘

118. 杨辉三角

关键:主要是确定输入的num和每行需要填充的数据对应数组的下标,输入num,对应num行最后一位下标是num-1;除了两头的1,中间需要填充的是1到num-2的值;
问题:第一次提交把等于0的情况漏掉了;
整个代码的时间复杂度是num+(1+。。+num-2)


杨辉三角

优化后

 var generate = function(numRows) {
    let arr=[]
    for(let i=1;i<=numRows; i++){
        let row = [];
        for(let j=0;j<i; j++){
            if(j==0 || j== i-1){
                row.push(1);
            }else{
                row.push(arr[i-2][j-1]+arr[i-2][j]);
            }
        }
        arr.push(row);
    }
    return arr;
};
优化后

977. 有序数组的平方

相当于用时间换空间


977.有序数组的平方

很明显for(var j=i-1;j>=0;j--)有序数组,这个遍历是可以优化的,目的是为了找到插入的位置,所以找到就退出,使用break;退出循环。时间和内存消耗都有所降低,但是总的来说是时间换空间,还能在循环遍历上进行优化。


优化后

采用js自带的sort方法
var sortNumber = function(a, b) {
    return a-b;
}
var sortedSquares = function(A) {
    let B = [];
    for (let i = 0; i < A.length; i++) {
        B[i] = A[i] * A[i];
    }
    return B.sort(sortNumber);
};

采用lambda表达式最简单的写法

var sortedSquares = function(A) {
    return A.map(item=>(Math.pow(item,2))).sort((a,b)=>a-b);
};
or
var sortedSquares = function(A) {
    return A.map(i => i**2).sort((a,b) => a-b)
};

集中执行的结果比较


image.png

其中最后两次是同样的代码,但是执行时间和内存消耗都不相同,说明时间受网络影响很大,内存主要和比较的次数有关
然后我做了很多比较

执行用时 : 160 ms, 在Squares of a Sorted Array的C提交中击败了73.56% 的用户
内存消耗 : 21.8 MB, 在Squares of a Sorted Array的C提交中击败了71.97% 的用户

/**
 * Return an array of size *returnSize.
 * Note: The returned array must be malloced, assume caller calls free().
 */
int compare(const int* a,const int* b){
    return (*a - *b);
}
int* sortedSquares(int* A, int ASize, int* returnSize) {
    *returnSize = ASize;
    int* a = calloc(ASize,sizeof(int));
    for(int i = 0;i < ASize;i++)
        a[i] = A[i] * A[i];
    qsort(a,ASize,sizeof(int),compare);
    return a;
}

上面是数组是输入[-4,-1,0,3,10,3,20,15,35,22,1,13,55,33,26,64,52,11],的C语言执行结果,效率和内存占用明显最优,我在考虑如果追求漂亮的数据我应该用C语言完成
因为测试数据在一个量级所以对性能的影响差别不大可以忽略,主要是代码质量、网络延迟及不同语言的效率。


image.png

896. 单调数列

var isMonotonic = function(A) {
    var isPure=true;    
    var isPure1=true;
    for(var i=0; i<A.length-1;i++){
        isPure &= A[i]<=A[i+1];
        isPure1 &=A[i]>=A[i+1];
    }
    return isPure || isPure1;
};

之前尝试写分支结构,怎么写都不太对,后来想后一个大于前一个或者后一个小于前一个,即全部都的逻辑,不正是逻辑与的目的吗,然后就大大的简化了代码,内存消耗很低。

867. 转置矩阵

/**
 * @param {number[][]} A
 * @return {number[][]}
 */
var transpose = function(A) {
    var tArray = new Array();  
    var row = A.length;
    var col = A[0].length;
    for(var k=0;k<col;k++){    
        tArray[k]=new Array();  
        for(var j=0;j<row;j++){   
            tArray[k][j]="";    
         }
    }
    
    for(var i=0; i<col;i++){
        for(var j=0; j<row;j++){
            tArray[i][j]=A[j][i];
        }
    }
    return tArray;
};

主要分为两块,一块定义二维数组,一块赋值

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • 看《三体》的时候我就觉得外太空是黑暗冷酷的,但是又会时不时想起偶然间在一本杂志上看到过的一篇短篇科幻文。具体...
    边城and顾诗阅读 1,352评论 0 0
  • ——后TA第一次大组会 时间:2018年7月20日—22日(共3天) 地点:咸阳悦宾酒店(食宿) ...
    吴春飞阅读 321评论 1 0
  • 如果你有个梦想,你就要去捍卫它。 当韩寒去办公室办理退学手续的时候,老师们问他,你不念书了,将来靠什么生活,年少的...
    祛痘护肤专家阅读 358评论 0 1
  • 当晨曦中的第一缕光 照在这起伏的薄雪之上 我眺望 这裸露的脊 是谁沉默千年的殇
    小蓓zz阅读 279评论 0 0