11 2021 档案

设计模式第二讲--面向对象设计原则
摘要:1. 变化是复用的天敌,面向对象设计最大的优势在于:抵御变化。 2. 重新认识面向对象 (1)理解隔离变化 从宏观层面看,面向对象的构建方式能适应软件的变化,能将变化所带来的影响减为最小。 (2)各司其职 从微观的层面来看,面向对象的方式更强调各个类的“责任”。 由于需求变化导致的新增类型不应该影响 阅读全文

posted @ 2021-11-28 23:30 xcxfury001 阅读(34) 评论(0) 推荐(0) 编辑

设计模式第一讲--设计模式简介
摘要:1. 课程目标 (1)理解松耦合设计思想 (2)掌握面向对象设计原则 (3)掌握重构技法改善设计 (4)掌握GOF核心设计模式 2. 《设计模式:可复用面向对象软件的基础》 可复用是设计模式的目标,面向对象是方法。通常说的设计模式默认为面向对象的设计模式,但这并不意味着设计模式就等于面向对象的设计模 阅读全文

posted @ 2021-11-25 08:36 xcxfury001 阅读(28) 评论(0) 推荐(0) 编辑

数值的整数次方
摘要:/* * 实现函数double Power(double base, int exponent),求base的exponent次方。 * 不得使用库函数,同时不需要考虑大数问题。 */ /* * 考虑不够全面的解法,没有考虑到输入的指数小于0的情况 */ double Power(double ba 阅读全文

posted @ 2021-11-24 08:31 xcxfury001 阅读(30) 评论(0) 推荐(0) 编辑

位运算
摘要:/* * 整数向右移1位和/2之间的区别:除了这个整数是-1之外其余结果都相同。 */ #include<iostream> using namespace std; int main() { int value = -1; int result1 = value / 2; value = valu 阅读全文

posted @ 2021-11-23 08:33 xcxfury001 阅读(17) 评论(0) 推荐(0) 编辑

动态规划与贪婪算法练习
摘要:/* * 动态规划和贪婪算法 */ /* * 给你长度为n的绳子,请把绳子剪成m段(m, n都是整数,n>1并且m>1),截取的绳子长度也为整数。 * 每段绳子的长度记为k[0],k[1],...,k[m-1]。请问k[0]*k[1]*...*k[m-1] * 的最大乘积是多少。 * 例如:当绳子的 阅读全文

posted @ 2021-11-23 08:19 xcxfury001 阅读(17) 评论(0) 推荐(0) 编辑

回溯法练习
摘要:/* * 回溯法的典型问题 */ /* * 题目:设计一个函数,用来判断在一个矩形中是否存在一条包含 * 某字符串所有字符的路径。路径可以从矩阵中任意一格开始, * 每一步可以在矩阵中向左右上下移动一格。一个格子不能经过 * 多次。 */ #include<cstring> bool hasPath 阅读全文

posted @ 2021-11-22 08:19 xcxfury001 阅读(11) 评论(0) 推荐(0) 编辑

旋转数组的最小数字
摘要:本随笔记录来自《剑指offer》第二版 /* * 把一个数组最开始的若干个元素搬到数组的尾部,我们称之为 * 数组的旋转。输入一个递增排序的数组的旋转,输入旋转数组的 * 最小元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的 * 一个旋转,该数组的最小值为1. */ /* * 暴力搜 阅读全文

posted @ 2021-11-17 08:22 xcxfury001 阅读(20) 评论(0) 推荐(0) 编辑

时间复杂度为O(n)的排序算法
摘要:本随笔来源于《剑指offer》第二版 面试官:请实现一个排序算法,要求时间效率为O(n)。 应聘者:对什么数字进行排序,有多少个数字? 面试官:我们相对公司的所有员工的年龄排序。我们公司一共有几万名员工。 应聘者:也就是说数字的大小在一个较小的范围内,对吧? 面试官:嗯,是的。 应聘者:可以使用辅助 阅读全文

posted @ 2021-11-16 08:38 xcxfury001 阅读(160) 评论(0) 推荐(0) 编辑

排序算法
摘要:/* * 如果待排序的表中,存在多个关键字相同的元素,经过排序后 * 这些具有相同关键字的元素之间的相对次序保持不变,则称这种 * 排序方法是稳定的。反之,如果具有相同关键字的元素之间的相 * 对次序发生变化,则称这种排序方法是不稳定的。 */ /* * 1.插入排序:假设待排序的元素存放在R[0, 阅读全文

posted @ 2021-11-16 08:17 xcxfury001 阅读(41) 评论(0) 推荐(0) 编辑

斐波那契数列
摘要:/*斐波那契数列*/ /* * 解法1:递归解法 */ long long Fibonacci(unsigned int n) { if (n <= 0) return 0; if (n == 1) return 1; return Fibonacci(n - 1) + Fibonacci(n - 阅读全文

posted @ 2021-11-14 18:14 xcxfury001 阅读(24) 评论(0) 推荐(0) 编辑

用两个栈实现队列
摘要:/* *用两个栈来来实现一个队列。队列的声明如下,请实现它的两个函数appenTail和 * deleteHead,分别完成在队列尾部插入节点和队列头部删除节点的功能。 */ #include<iostream> #include<stack> using namespace std; templa 阅读全文

posted @ 2021-11-12 08:47 xcxfury001 阅读(13) 评论(0) 推荐(0) 编辑

中序遍历中二叉树的下一个节点
摘要:/* * 给定一棵二叉树和其中一个节点,如何找出中序遍历 * 序列的下一个节点?树中的节点除了有两个指向左、右 * 子节点的指针,还有一个指向父节点的指针。 */ /* * 如果一个节点有右子树,那么他的下一个节点就是右子树中的最左节点。 * 如果节点没有右子树,如果节点是父节点的左子节点,那么下一 阅读全文

posted @ 2021-11-12 08:29 xcxfury001 阅读(32) 评论(0) 推荐(0) 编辑

重建二叉树
摘要:/* * 二叉树的遍历方式: * 前序遍历:先访问根节点,再访问左子节点,最后访问右子节点。 * 中序遍历:先访问左子节点,再访问根节点,最后访问右子节点。 * 后序遍历:先访问左子节点,再访问右子节点,最后访问根节点。 */ /* * 输入二叉树的前序遍历和中序遍历的结果,请重新构建该二叉树。 * 阅读全文

posted @ 2021-11-11 08:25 xcxfury001 阅读(13) 评论(0) 推荐(0) 编辑

从尾到头打印链表
摘要:/* * 输入一个链表的头节点,从尾到头反过来打印每个节点的值。 * 且不允许修改输入链表的结构。 */ #include<iostream> #include<stack> using namespace std; struct ListNode { int m_nKey; ListNode* m 阅读全文

posted @ 2021-11-10 20:38 xcxfury001 阅读(13) 评论(0) 推荐(0) 编辑

链表的插入和删除
摘要:/* * 往链表的末尾插入一个节点和在链表中查找某个节点并删除 */ #include<iostream> using namespace std; struct ListNode { int m_nValue; ListNode* m_pNext; }; //往一个链表的尾部添加一个节点 void 阅读全文

posted @ 2021-11-10 08:14 xcxfury001 阅读(53) 评论(0) 推荐(0) 编辑

替换空格
摘要:/*请实现一个函数,把字符串中的空格替换成%20。例如,输入 “we are happy.”,输出“we%20are%20happy.”。 不可以申请新的空间,原来字符串有足够多的空间进行移动。 */ /* * 解法1:从前向后遍历,碰到空格就将空格之后的字符全部向后平移2,然后插入%20. * 这 阅读全文

posted @ 2021-11-09 08:02 xcxfury001 阅读(36) 评论(0) 推荐(0) 编辑

字符串存储
摘要:#include<iostream> using namespace std; int main() { char str1[] = "hello world!"; //字符串数组,数据存放在栈中 char str2[] = "hello world!"; //字符串数组,数据存放在栈中 const 阅读全文

posted @ 2021-11-08 06:43 xcxfury001 阅读(120) 评论(0) 推荐(0) 编辑

二维数组中的查找
摘要:/* * 在一个二维数组中,每一行都是按照从左到右 * 递增的顺序排序,每一列都是按照从上到下递增 * 的顺序排序。请完成一个函数,输入这样的一个 二位数组和一个整数,判断数组中是否含有该整数。 */ /* * 解法1:暴力搜索法,时间复杂度为O(n^2) */ #include<iostream> 阅读全文

posted @ 2021-11-08 06:24 xcxfury001 阅读(20) 评论(0) 推荐(0) 编辑

不修改数组找出重复的数字
摘要:/* * 在一个长度为n+1的数组里的所有的数字都在1~n的范围内,所以数组中 * 至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改 * 输入的数组。例如,如果输入长度为8的数组{2,3,5,4,3,2,6,7},那么对应的 * 输出是重复的数字2或者3. */ /* 解法1:利用 阅读全文

posted @ 2021-11-05 08:28 xcxfury001 阅读(35) 评论(0) 推荐(0) 编辑

C++多线程编程第十三讲--补充知识
摘要://(1)补充一些知识点 //(1.1)虚假唤醒 // wait(), notify_one(), notify_all() 使用非常频繁的接口 // 虚假唤醒是指没有满足条件的时候被唤醒了。 //(1.2)atomic #include<iostream> #include<thread> #in 阅读全文

posted @ 2021-11-03 08:46 xcxfury001 阅读(12) 评论(0) 推荐(0) 编辑

C++多线程编程第十二讲--windows临界区、其他各种mutex互斥量
摘要://(1)windows临界区 #include<iostream> #include<thread> #include<vector> #include<list> #include<mutex> #include<windows.h> #define _WINDOWS //定义一个开关 usin 阅读全文

posted @ 2021-11-02 08:12 xcxfury001 阅读(63) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示