1.arr[i]-arr[j] = (arr[i]-arr[i+1])+(arr[i+1]-arr[i+2])+......(arr[j-1]-arr[j])

该种转换应用:求最小正子串

2.arr[i]+arr[i+1]+....arr[j] = (arr[0]+arr[1]+......+arr[i])-(arr[0]+arr[1]+......+arr[j])

该种转换应用:求最大逆序对

3.递归的时候,特别注意某个子问题有没有重复计算,优化也是从这个角度入手。

应用:(1)计算字符串编辑距离,会出现重复计算;

(2)判断二叉树是不是平衡

注:o(n)=2o(n/2)+c => o(n)的时间复杂度

4.查找算法尽量往二分法、三分法上面靠(二分法适用于单调函数、三分法适用于凸函数)。当然有的需要额外的一些巧妙算法,例如寻找一个数组中出现次数为奇数的数。hash查找时间复杂度为o(1)。

5.linux计算动态优先级公式:

Dynamicy priority = max (100, min (static priority - bonus + 5, 139))   。

6.在写代码的时候,尽量用一些比较安全的数据类型。例如:size_t、ptrdiff_t。

7.在《STL源码剖析》p61,第二级空间配置器中需要将内存量向上调至8的倍数,这样实现的:

enum{__ALIGN = 8};
static size_t ROUND_UP(size_t bytes){return (((bytes)+ALIGN-1) &~(ALIGN-1));
}

8.+x和x++稍微有一点性能的差别。你如果对汇编比较熟悉,可以发现++x的汇编比x++要简洁一些。(海涛说的)

9.精炼的代码:while(n--)i++; ===>for(;n;--n,i++);//逗号的妙用

for(;begin<end;begin++,end++);

for(scanf("%d",&N);N;scanf("%d",&N))//for语句的妙用

10.只在内部使用的代码一般加上"__"前缀。

11.int count(int a,int);

int count(int a,float);

这时最后一个参数只声明了一个型别,并未指定参数名称,因为它纯粹是用来激活重载机制。

12.编写链表的时候不要忘了最后一个节点要赋值为“NULL”

13.在初始化结构器的时候,采用宏形式,恩不错。

  1. #define DEFINE_WAIT_FUNC(name, function)                \
  2. wait_queue_t name = {                               \
  3. .private    = current,                          \
  4. .func       = function,                         \
  5. .task_list  = LIST_HEAD_INIT((name).task_list), \
  6. }

这段代码也不错:

#define wait_event(wq, condition)       \
do {                                    \  if (condition)                      \  break;                          \  __wait_event(wq, condition);        \
} while (0)  

14.统计单词常用map、hash_map、trie树

15.那么怎样才能建立在整个类中都恒定的常量呢? 答案是使用 枚举常量

[cpp] view plaincopyprint?
  1. class test
  2. {
  3. enum    { SIZE1 = 100,  SIZE2 = 200 };
  4. int    array1[SIZE1];
  5. int    array2[SIZE2];
  6. };

枚举常量不会占用对象存储空间,它们在编译时被全部求值。

但是其存在一个缺点: 它的隐含数据类型是整数,其最大值有限,且不能表示浮点数


16.细细品位下面的代码

void Print(int n)
{if(n<0)return;cout<<n<<" ";Print(n-1);
}void Print1(int n)
{if(n<0)return;Print1(n-1);cout<<n<<" ";
}

17.这段代码有意思

#if 0#include<new>#define _THROW_BAD_ALLOC throw bad_alloc
#elif  !defined(_THROW_BAD_ALLOC)#include<iostream>#define _THROW_BAD_ALLOC   cerr<<“out if memory”<<endl;exit(1);
#endif

18.为了避免浪费空间,STL源码free_list的采用链表结构

  1. union obj{
  2. union obj* free_list_link;
  3. char client_data[1];
  4. }

菜鸟在学编程__LSJ相关推荐

  1. 风变python小课 基础语法12 作业1_菜鸟的风变编程Python小课之路,这么学编程也可以?...

    原标题:菜鸟的风变编程Python小课之路,这么学编程也可以? 作为职场菜鸟,我感觉我就是现实生活里的孙弈秋,虽然学历没有他那么惨,但是在公司总感觉不那么受待见,可能因为我们这个行业本身竞争大吧,领导 ...

  2. 小白快速变大神,零基础菜鸟应该怎么学编程

    最近,在交流群里经常有苦逼小白问怎样学编程,对编程有兴趣但无从下手,这是个庞大到让大神们"无言以对"的命题.在知乎.CSDN等论坛上,许多同行也对此类问题进行了探讨,小编就其中认可 ...

  3. 作为菜鸟的我,努力学编程就对了——初来乍到篇

    一.自我介绍 哈喽,各位读者老爷们大家好,这里是菜鸟三月,做个简单的自我介绍,我是一名开始学编程多久的编程菜鸟三月春分生,当然也是一名在校大一新生,经过深熟虑果然还是去学编程把.初入大学对自己的专业毫 ...

  4. 菜鸟学编程,用x86二手本学习嵌入式编程(硬件编程)

    最近一直忙着上课,一直忙着写论文,一直忙着准备考试,但是脑子没有停止思考. 下学是结合个人的学习经历,给希望学习软件的菜鸟一点点帮助. 1:菜鸟也想学编程 大部分同学从大学开始接触软件编程,但其实有一 ...

  5. 菜鸟学编程系列——引子

    曾经江湖,门派纷争,南北少林.武当峨嵋.五岳派系,更有天山.昆仑闲等,鱼目混杂,大小派别,多不胜数.       纵观历代,华山论剑.围攻少林.五岳争盟,多少英雄,痴人说梦,一统江湖,多有沦落.    ...

  6. 别为了学编程而学编程

    "所有人都应该学习编程"(Everyone should learn programming)--这个"病毒"已经广为扩展,达到了失控的地步,以致于纽约市长竟然 ...

  7. 30岁学python编程_朋友问我,你都30岁了学编程来得及吗

    导语:"种一颗树最好的时间是十年前,其次是现在". 去年,A君看我跟一堆代码较劲的时候,忍不住问我:你都30岁了,学编程来得及吗? 我想了半天,最后用了一句知乎上面看到的话来回答: ...

  8. java swt 菜鸟教程_编程基础学习JS的入门教程

    将JavaScript 插入网页的方法 使用 插入JavaScript 与在网页中插入CSS的方式相似.使用下面的代码可以在网页中插入JavaScript: ... 其中的...就是代码的内容.Jav ...

  9. 零基础无经验,该怎么学编程,要学多久?

    零基础,能学编程吗? 学编程多久能学会? 到底该怎么学编程? 新手学编程之初,总会面临太多太多诸如此类的问题.一方面源于对陌生领域的不自信,另一方面还是因为在编程上系统学习的方法.基于此,市面上也就出 ...

最新文章

  1. IndexError: too many indices for array
  2. 【Scratch】青少年蓝桥杯_每日一题_1.9_小猫旅行
  3. ajax得到session,Ajax如何使用Session
  4. 信用社和民营银行存款利息都高,有5万块钱存哪个更安全?
  5. 消息称百度网盘青春版降速23倍:从52MB/s降至2.2MB/s
  6. hdu 6395Sequence【矩阵快速幂】【分块】
  7. php parse url 中文,php parse_url()函数解析URL用法总结
  8. 零基础学python难吗-学习python12小时后,告诉你,学python真没你想的那么难!
  9. oracle flex asm ceph,ORACLE 12C Flex ASM转换
  10. 11位大牛与您共建数智升级路径
  11. Python常用的软件包
  12. 怎么彻底卸载cad2017_怎么彻底卸载删除cad
  13. 基于javaweb+jsp房屋租赁系统(java+SSM+jsp+mysql+maven)
  14. Trace32 simulator调试以及简单实用命令介绍
  15. 主数据管理(Master Data Management)基础
  16. django迁移数据makemigrations不创建APP中的数据表
  17. 互联网晚报 |11/23星期三 | 京东高管降薪10%至20%;75%未成年每周游戏少于3小时;惠普宣布未来三年裁员4K-6K人...
  18. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新
  19. python系列tkinter之pack布局、place布局和grid布局
  20. MyBatis-plus拦截器

热门文章

  1. 你为什么在现在的公司不离职?
  2. 设置和获取中断向量,很清楚嗷
  3. 小米装linux系统教程视频,小米手机 连接在Ubuntu 下调试
  4. 前端面试题 - 面试
  5. 上传文件时,文件名中文乱码
  6. 查分吧(chafenba)万用考试成绩查询小程序源码
  7. 移动端测试——移动端基础
  8. 苹果cms用拼音伪静态之后,播放页密码访问失效解决方法
  9. 北京市定额发票真假查询地址
  10. 51单片机定时器介绍