随笔分类 -  学习笔记

记录学习过程中的点点滴滴知识
摘要:动图演示参考:https://www.cnblogs.com/onepixel/articles/7674659.html 基数排序参考:https://blog.csdn.net/double_happiness/article/details/72452243 1、常见的排序算法 2、算法分析 阅读全文
posted @ 2019-01-11 16:07 zhizhiyu 阅读(238) 评论(0) 推荐(0)
摘要:一、题目描述 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 示例 2: 二、题目分析 1)采用快排的思想,以第一个节点为基准,分成左右两部分分别排序 2)因为是链表,所以用一个整数cnt来标记要进行排序的链表节点的个数,不能超过这个数目 三、代码实现 阅读全文
posted @ 2019-01-09 15:46 zhizhiyu 阅读(216) 评论(0) 推荐(0)
摘要:转载自:https://blog.csdn.net/chenjin_chenjin/article/details/83617186 在虚拟机上安装好centos7后,ping www.baidu.com 不通,vmware上也显示网络不可用。 解决思路: 1、选择网络适配器NAT模式。 2、将ON 阅读全文
posted @ 2019-01-05 19:20 zhizhiyu 阅读(1954) 评论(0) 推荐(0)
摘要:一、题目描述 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 示例 2: 二、题目分析 1)发现规律:2的幂1的数目一定是1个,用last_2记录最近出现的2的幂2)dp[i]=1+dp[i-last_ 阅读全文
posted @ 2019-01-04 17:34 zhizhiyu 阅读(173) 评论(0) 推荐(0)
摘要:一、题目描述 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打 阅读全文
posted @ 2019-01-04 17:15 zhizhiyu 阅读(294) 评论(0) 推荐(0)
摘要:一、题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。 示例 1: 示例 2: 二、题目分析和代码实现 1、第一种方法——最直接的思路 1)采用动态规划的方法,dp[i]代表以num 阅读全文
posted @ 2019-01-04 16:01 zhizhiyu 阅读(369) 评论(0) 推荐(0)
摘要:一、题目描述 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表一个空节点。 给定一串以 阅读全文
posted @ 2019-01-04 13:35 zhizhiyu 阅读(425) 评论(0) 推荐(0)
摘要:一、题目描述 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。 示例 1: 示例 2: 说明:你可以假设所有输入都会得到有效的结果。 进阶:你能用 O(n) 时间复杂度和 / 或原地 O(1) 额外空间来实现吗? 阅读全文
posted @ 2019-01-03 20:15 zhizhiyu 阅读(475) 评论(0) 推荐(0)
摘要:一、题目描述 编写一段程序来查找第 n 个超级丑数。 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。 示例: 说明: 1 是任何给定 primes 的超级丑数。 给定 primes 中的数字以升序排列。 0 < k ≤ 100, 0 < n ≤ 106, 0 < pr 阅读全文
posted @ 2019-01-03 19:59 zhizhiyu 阅读(298) 评论(0) 推荐(0)
摘要:原文链接 在Linux下重命名文件或目录,可以使用mv命令或rename命令,这里分享下二者的使用方法。 mv命令既可以重命名,又可以移动文件或文件夹。 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式中要重命名文件或目录,只需 阅读全文
posted @ 2019-01-03 17:40 zhizhiyu 阅读(28866) 评论(0) 推荐(0)
摘要:先总结下: 1. using namespce std;尽量不要(或者强硬一点,不许)在头文件中使用。 解析: 不让这么用,主要原因就是防止名字重复(即自定义变量名和std中名字重复),因为头文件会被很多地方使用,你不知道这个using能覆盖多大范围。 2. 头文件最好不用,但在cpp文件中可以使用 阅读全文
posted @ 2018-12-29 15:36 zhizhiyu 阅读(7997) 评论(0) 推荐(0)
摘要:一、题目描述 初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡 阅读全文
posted @ 2018-12-29 13:58 zhizhiyu 阅读(346) 评论(0) 推荐(0)
摘要:一、题目描述 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例 1: 示例 2: 示例 3: 二、题目分析 1)这个问题的关键 阅读全文
posted @ 2018-12-29 13:24 zhizhiyu 阅读(440) 评论(0) 推荐(0)
摘要:一、题目描述 累加数是一个字符串,组成它的数字可以形成累加序列。 一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。 给定一个只包含数字 '0'-'9' 的字符串,编写一个算法来判断给定输入是否是累加数。 说明: 累加序列里的数不会以 0 阅读全文
posted @ 2018-12-28 14:37 zhizhiyu 阅读(514) 评论(0) 推荐(0)
摘要:1、访问控制中有三种角色:基类及其友元,派生类,类用户(对象);访问说明符分为public/protected/private,类的成员也相应的分为了3种。 2、访问说明符又分为两种:一个是基类中的成员访问说明符;另一个是派生类派生列表中的访问说明符。 3、以上两种访问说明符把类的成员分成了分为了6 阅读全文
posted @ 2018-12-28 10:52 zhizhiyu 阅读(530) 评论(0) 推荐(0)
摘要:一、题目描述 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 阅读全文
posted @ 2018-12-27 14:34 zhizhiyu 阅读(935) 评论(0) 推荐(0)
摘要:转载自:https://blog.csdn.net/derkampf/article/details/62093252 C++中的虚析构函数到底什么时候有用的,什么作用呢。 一.虚析构函数的作用 总的来说虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的。也就说虚析构函数使 阅读全文
posted @ 2018-12-27 11:30 zhizhiyu 阅读(3539) 评论(1) 推荐(1)
摘要:1、面向对象程序设计的核心思想是数据抽象、继承和动态绑定。通过使用数据抽象可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似的关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象,动态绑定也叫作运行时绑定,当用基类的引用或者指针调用一个虚函数时,将发 阅读全文
posted @ 2018-12-27 11:01 zhizhiyu 阅读(372) 评论(0) 推荐(0)
摘要:参考博客:(LeetCode 307) Range Sum Query - Mutable(Segment Tree) 一、题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 update(i, val) 函数可以通过将下标为  阅读全文
posted @ 2018-12-26 20:37 zhizhiyu 阅读(278) 评论(0) 推荐(0)
摘要:1、这两个应该是C++中比较高级的用法了。 一、函数调用运算符 1、重载函数调用运算符(),必须是成员函数,一个类可以定义多个不同版本的调用运算符,相互之间应该在参数数量或者类型上有所区别。 2、定义了调用运算符的类的对象称作函数对象;函数对象常常作为泛型算法的实参。 3、lambda表达式就是一个 阅读全文
posted @ 2018-12-26 09:55 zhizhiyu 阅读(293) 评论(0) 推荐(0)