不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8 简介:为什么要强调 书写规范 ?这其实并不关乎"美丑",而是为了 更高的效率(代码阅读.开发.维护)与更方便的合作(全球通用的标准) .如今,不管什么方向的同学都要进行"写代码"这项工作,可惜的是,很多朋友并没有意识到:花费1小时了解代码书写规范,可以为自己节省 100+ 小时的写代码的时间. 代码规范的魅力在于 实实在在地简化问题 ,并不需要我们奉为圭臬或引起争论.本文我们主要以 p…
检查你的代码风格 PEP 8 是 Python 代码风格规范,它规定了类似行长度.缩进.多行表达式.变量命名约定等内容.尽管你的团队自身可能也会有稍微不同于 PEP 8 的代码风格规范,但任何代码风格规范的目标都是在代码库中强制实施一致的标准,使代码的可读性更强.更易于维护.下面三个库就可以用来帮助你美化代码. 1. Pylint Pylint 是一个检查违反 PEP 8 规范和常见错误的库.它在一些流行的编辑器和 IDE 中都有集成,也可以单独从命令行运行. 执行 pip install py…
原文链接 这是一本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现.针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失.“刷”完本书后,你就是“题王”!__eol__本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化.书中将所有的面试题从难到易依次分为“将.校.尉.士”四个档次,…
前方高能!笑死人不偿命系列~ 表演即将开始,吃东西的请停下来,不然你会后悔的 1. 公司实习生找 Bug 2. 在调试时,将断点设置在错误的位置 3. 当我有一个很棒的调试想法时 4. 偶然间看到自己多年前写的代码 5. 当我第一次启动我的单元测试时 6. 数据库的 Delete 语句忘了使用限定词 where- 7. 明明是个小 bug,但就是死活修不好- 8. 当我尝试调整生产数据库中的一些东西时 9. 好像真的没人发现我产品里的 bug- 10. 下班前我还有一项任务没有完成 11. 产品…
一.介绍 以往大家如果想查看组件的使用效果,需要打开DevEco Studio构建工程.现在为了便于大家高效开发,文档上线了JS UI组件在线预览功能,无需本地构建工程,在线即可修改组件样式等参数.一键预览编译效果.程序员直呼:简直不要太方便啦! 让我们通过下面这张动图看一下效果~ 看完动图,你是不是也跃跃欲试?心动不如行动,复制下方链接,赶紧用起来吧~ JS API参考文档(以Button组件为例): https://developer.harmonyos.com/cn/docs/docume…
当今世界上绝大多数游戏都是C++写的,为什么要说不呢? 要做什么?写游戏. 写游戏首先要考虑些什么?做什么样的游戏,图形.音效.游戏逻辑如何实现. 用C++要先考虑什么?定义跨平台数据类型抽象,实现常用集合类,设计宏实现RTTI,写一个支持Unicode并可以和其他多种字符串类型互相转换的字符串类,自定义内存分配器,写个shared_ptr,组织预编译头文件,设计实现Object基类以处理跨DLL内存管理等问题…… 那么这些和做游戏有什么关系?不做好这些就很难开始写游戏. 做这些要话多少时间?很…
请大家务必审题,转行做程序员,是程序员,并非数据分析也不是软件测试. 首先声明:这是一篇容易引起撕逼的问答,为了祖国和谐,人民安康,请各位看官尽量理性讨论. 同时,这篇文章是面向一些初入行的朋友进行一些相对中肯一点的分析和建议而已,虽然有浓厚的个人色彩,但我还是尽量以事实说话,以代码说话,大牛们就不要拿自己的牛逼经验来这里装逼了. 我先问大家一个问题,为什么中国人用刀叉是很容易上手的一件事情,而外国人用筷子,应该是他们在中国吃饭时最痛苦的一件事情吧.为什么会这样呢? 其实原因非常简单,当我们学会…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.书写规范 1.1.大小写风格 1.2.缩进风格 1.3.换行 1.4.其它 2.命名规范 2.1.数据库对象命名 2.2.变量命名 3.注释规范 4.语法规范 5.总结 5.1.代码的可读性比说明文档更重要 5.2.编程规范必不可少 作为一名使用 Oracle 的开发人员,在写这个系列博文之前,我原打算仅对常用 DDL 和 DML 做一个总结就算了.但在本人阅读<剑破冰山--Oracle开发艺术>第一章--<大话…
DDoS攻击没有我们想象中的那么简单,并不是什么Python程序员都能够做到的. 若要知晓黑客利用DDOS攻击原理那么我们必须要知道是实行DDoS攻击比较难的原因是什么? 很简单的一句话概括:"Python程序员要掌握一定的入侵技巧." 在此我为叙述下网络上常见的攻击工具的原理: trin00 Tribe Flood Network DDOS攻击原理更深层次的了解: 对DDOS攻击工具trin00结构的认识: 黑客利用DDOS攻击原理之实施攻击的步骤: 透过寻常网路(网络)连线,使用者…
题目链接 https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf?tpId=13&tqId=11182&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述 从无序序列,找到最小topk个元素. 解题思路 使用大根堆维护最小topk个元素: - 首先前k个元素建立大根堆(从…
题目 给定整数数组arr和整数num,共返回多少的数组满足如下情况 max(arr[i...j]) - min(arr[i...j]) <= num max(arr[i...j])表示数组arr[i...j] 中最大值,min(arr[i...j])表示数组arr[i...j] 中最小值 java代码 /** * @Description:最大值减去最小值小于或等于num的数量 * @Author: lizhouwei * @CreateDate: 2018/4/6 0:55 * @Modify…
题目 给出一个无重复元素的数组,构造此数组的MaxTree, java代码 /** * @Description: 构造数组的MaxTree * @Author: lizhouwei * @CreateDate: 2018/4/5 22:16 * @Modify by: * @ModifyDate: */ public class Chapter1_8 { public Node getMaxTree(int[] arr) { if (arr == null) { return null; }…
题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 /** * @Description:设计一个有getMin功能的栈 * @Author: lizhouwei * @CreateDate: 2018/4/5 9:54 * @Modify by: * @ModifyDate: */ public class Chapter1_1 { privat…
题目 去掉字符串中连续出现k 个0 的子串 java代码 package com.lizhouwei.chapter5; /** * @Description: 去掉字符串中连续出现k 个0 的子串 * @Author: lizhouwei * @CreateDate: 2018/4/23 21:34 * @Modify by: * @ModifyDate: */ public class Chapter5_3 { public String removeKZero(String str, in…
题目待续.... Tarjan算法与并查集解决二叉树节点间最近公共祖先的批量查询问题 java代码…
题目 判断t1 树中是否有与t2 树拓扑结构完全相同的子树 java代码 package com.lizhouwei.chapter3; /** * @Description: 判断t1 树中是否有与t2 树拓扑结构完全相同的子树 * @Author: lizhouwei * @CreateDate: 2018/4/19 21:35 * @Modify by: * @ModifyDate: */ public class Chapter3_12 { public boolean isSubTre…
题目 二叉树按层打印和ZigZag打印 java代码 package com.lizhouwei.chapter3; import java.util.LinkedList; import java.util.Queue; /** * @Description:二叉树按层打印和ZigZag打印 * @Author: lizhouwei * @CreateDate: 2018/4/14 21:47 * @Modify by: * @ModifyDate: */ public class Chapt…
题目 遍历二叉树的神级方法 morris java代码 package com.lizhouwei.chapter3; /** * @Description:遍历二叉树的神级方法 morris * @Author: lizhouwei * @CreateDate: 2018/4/14 17:15 * @Modify by: * @ModifyDate: */ public class Chapter3_5 { //morris中序 public void morrisInOrder(Node h…
样例 链表1-2-3-4-5-6-7-8-9-10 K=3 ,结果 3-2-1-6-5-4-9-8-7-10 java代码 /** * @Description:将单链表每K个节点之间逆序 * @Author: lizhouwei * @CreateDate: 2018/4/7 9:10 * @Modify by: * @ModifyDate: */ public class Chapter2_12 { public Node reverseK(Node head, int k) { if (h…
题目 例如 1-2-3-4 删除2,1-2-3-4-5 删除3 例如 a=1,b =2 java代码 /** * @Description:删除中间节点和a/b处节点 * @Author: lizhouwei * @CreateDate: 2018/4/6 10:12 * @Modify by: * @ModifyDate: */ public class Chapter2_3 { //删除中间节点 public Node removeMidNode(Node head) { if (head…
题目 在单链表和双链表中删除倒数第K个节点 java代码 /** * @Description:在单链表和双链表中删除倒数第K个节点 * @Author: lizhouwei * @CreateDate: 2018/4/6 9:14 * @Modify by: * @ModifyDate: */ public class Chapter2_2 { public Node removeKNode(Node head, int k) { if (head == null || k < 1) { re…
题目 数组的partition 调整 java代码 package com.lizhouwei.chapter8; /** * @Description: 数组的partition 调整 * @Author: lizhouwei * @CreateDate: 2018/5/9 21:24 * @Modify by: * @ModifyDate: */ public class Chapter8_23 { public void leftUnique(int[] arr) { if (arr ==…
题目 打印N 个数组整体最大的Top K java代码 package com.lizhouwei.chapter8; /** * @Description: 打印N 个数组整体最大的Top K * @Author: lizhouwei * @CreateDate: 2018/5/9 20:11 * @Modify by: * @ModifyDate: */ public class Chapter8_20 { public void printTopK(int[][] matrix, int…
题目 在数组中找到出现次数大于N/K 的数 java代码 package com.lizhouwei.chapter8; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Description: 在数组中找到出现次数大于N/K 的数 * @Author: lizhouwei * @CreateDate: 2018/5/7 19:58…
题目 找到无序数组中最小的k 个数 java代码 package com.lizhouwei.chapter8; /** * @Description: 找到无序数组中最小的k 个数 * @Author: lizhouwei * @CreateDate: 2018/4/29 7:37 * @Modify by: * @ModifyDate: */ public class Chapter8_4 { //使用堆排序 时间复杂度为O(logN) public int[] getKMin(int[]…
题目 在其他数都出现k 次的数组中找到只出现一次的数 java 代码 package com.lizhouwei.chapter7; /** * @Description: 在其他数都出现k 次的数组中找到只出现一次的数 * @Author: lizhouwei * @CreateDate: 2018/4/28 21:20 * @Modify by: * @ModifyDate: */ public class Chapter7_6 { public int getOnceNum(int[] a…
  第1章栈和队列 1设计一个有getMin功能的栈(士★☆☆☆) 1由两个栈组成的队列(尉★★☆☆) 5如何仅用递归函数和栈操作逆序一个栈(尉★★☆☆) 8猫狗队列(士★☆☆☆)10用一个栈实现另一个栈的排序(士★☆☆☆) 13用栈来求解汉诺塔问题(校★★★☆) 14生成窗口最大值数组(尉★★☆☆) 19构造数组的MaxTree(校★★★☆) 22求最大子矩阵的大小(校★★★☆) 26最大值减去最小值小于或等于num的子数组数量(校★★★☆) 31第2章链表问题34打印两个有序链表的公共部分(…
[问题]介绍一种时间复杂度O(N),额外空间复杂度O(1)的二叉树的遍历方式,N为二叉树的节点个数无论是递归还是非递归,避免不了额外空间为O(h),h 为二叉树的高度使用morris遍历,即利用空节点空间morris遍历:[思路:]空间复杂度O(1)的要求很严格.常规的递归实现是显然不能满足要求的[其空间复杂度是树的深度O(h)].本篇文章介绍著名的Morris遍历,该方法利用了二叉树结点中大量指向null的指针. 常规的栈结构遍历方式,遍历到某个节点之后并不能回到上层的结点,这是由二叉树本身的…
[题目]分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点.[要求]如果链表长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1).[题解]从头遍历链表,每移动一次,K--,直至移动到链表尾部,此时k>0,说明k太大,链表不用删除k==0,链表长度即是k, 删除头结点即可k<0,再次重头遍历链表,每移动一次,k++,当k==0时,此时结点为要删除结点的前结点,使其指向下一个结点即可双向链表一样,只不过需要注意前结点就好 #include <i…
[题目] 将一个没有重复数字的数组中的数据构造一个二叉树 每个节点都是该子树的最大值 [要求] 时间复杂度为O(N)[题解] 使用单调栈,栈的顺序是维持从大到小排序 通过使用单调栈,将数组中中所有数的左右比他大的数记录下来 当某个数既无左边比他大的数,有无右边比他大的数,则该数为全局最大,将其作为二叉树的根 然后,某数只有左比他大的数,或者右比他大的数,则该数直接挂在比他大的数的下面, 当某个数既有左比他大的数,又有右比他大的数,则挂在两个数中较小数的下面. 然后直接构成一棵树. #includ…