摘要:#include<iostream> #include<windows.h> using namespace std; int main() { char currentUser[256] = { 0 }; DWORD dwSize_currentUser = 256; GetUserNameA(c
阅读全文
摘要:二叉树的遍历及相关题目 1.1二叉树遍历的概念 二叉树结构体的定义: typedef struct node { ElemType data; struct node * lchild; struct node * rchild; } 二叉树的遍历是指按照一定的次序访问二叉树中的所有的节点,并且每个
阅读全文
摘要:首先在一个解决方案中创建了三个项目,如下图所示: DLL_TEST项目的配置类型是exe。另外两个项目的配置类型是dll 三个项目的文件路径排列如下所示: x64文件夹中是三个项目编译生成的文件所在地。 三个项目中的文件: Shared_lib.h文件代码如下: #pragma once #incl
阅读全文
摘要:标准库并未给每一个容器添加大量的功能,而是提供了一组算法,这些算法中的大多数都独立于任何特定的容器。这些算法是通用的:可用于不同类型的容器和不同类型的元素(不仅包含标准库类型,如vector或list,还包含内置的数组类型)。 10.1概述 大多数算法都定义在头文件algorithm中。标准库还在头
阅读全文
摘要:题目描述:现在要实现拿水果。水果有很多的种类,比如苹果,香蕉,橘子等等。一般情况下拿水果的方式都是相同的,只有某些水果不一样,比如说现在拿香蕉的方式 就不一样,而拿苹果和橘子的方式相同。未来有更多的水果时,拿新水果的方式一般也与苹果、橘子相同。做一下设计,实现拿水果的接口。 #include<ios
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/sort-integers-by-the-number-of-1-bits/ 代码: /* 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同
阅读全文
摘要:/* * 题目: * 给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内 * 删除该节点。 */ #include<iostream> using namespace std; //链表节点定义 struct ListNode { int m_nValue; ListNode* m_p
阅读全文
摘要:1.小端存储和大端存储的含义如下,就是数据在内存中的存储方式 2.判断自己电脑内存是小端存储还是大端存储的代码如下: #include<iostream> using namespace std; bool is_little_endian_machine() { union UN { char c
阅读全文
摘要:/* * 输入数字n,按照顺序打印出从1到最大的n位十进制数,比如输入数字3,则打印出1,2,3一直到最大的3位数999. */ #include<iostream> using namespace std; //并没有考虑大数的解法 void Print1ToMaxOfDigits_1(int n
阅读全文
摘要:/* * 实现函数double Power(double base, int exponent),求base的exponent次方。 * 不得使用库函数,同时不需要考虑大数问题。 */ /* * 考虑不够全面的解法,没有考虑到输入的指数小于0的情况 */ double Power(double ba
阅读全文
摘要:/* * 整数向右移1位和/2之间的区别:除了这个整数是-1之外其余结果都相同。 */ #include<iostream> using namespace std; int main() { int value = -1; int result1 = value / 2; value = valu
阅读全文
摘要:/* * 动态规划和贪婪算法 */ /* * 给你长度为n的绳子,请把绳子剪成m段(m, n都是整数,n>1并且m>1),截取的绳子长度也为整数。 * 每段绳子的长度记为k[0],k[1],...,k[m-1]。请问k[0]*k[1]*...*k[m-1] * 的最大乘积是多少。 * 例如:当绳子的
阅读全文
摘要:/* * 回溯法的典型问题 */ /* * 题目:设计一个函数,用来判断在一个矩形中是否存在一条包含 * 某字符串所有字符的路径。路径可以从矩阵中任意一格开始, * 每一步可以在矩阵中向左右上下移动一格。一个格子不能经过 * 多次。 */ #include<cstring> bool hasPath
阅读全文
摘要:本随笔记录来自《剑指offer》第二版 /* * 把一个数组最开始的若干个元素搬到数组的尾部,我们称之为 * 数组的旋转。输入一个递增排序的数组的旋转,输入旋转数组的 * 最小元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的 * 一个旋转,该数组的最小值为1. */ /* * 暴力搜
阅读全文
摘要:本随笔来源于《剑指offer》第二版 面试官:请实现一个排序算法,要求时间效率为O(n)。 应聘者:对什么数字进行排序,有多少个数字? 面试官:我们相对公司的所有员工的年龄排序。我们公司一共有几万名员工。 应聘者:也就是说数字的大小在一个较小的范围内,对吧? 面试官:嗯,是的。 应聘者:可以使用辅助
阅读全文
摘要:/* * 如果待排序的表中,存在多个关键字相同的元素,经过排序后 * 这些具有相同关键字的元素之间的相对次序保持不变,则称这种 * 排序方法是稳定的。反之,如果具有相同关键字的元素之间的相 * 对次序发生变化,则称这种排序方法是不稳定的。 */ /* * 1.插入排序:假设待排序的元素存放在R[0,
阅读全文
摘要:/*斐波那契数列*/ /* * 解法1:递归解法 */ long long Fibonacci(unsigned int n) { if (n <= 0) return 0; if (n == 1) return 1; return Fibonacci(n - 1) + Fibonacci(n -
阅读全文
摘要:/* *用两个栈来来实现一个队列。队列的声明如下,请实现它的两个函数appenTail和 * deleteHead,分别完成在队列尾部插入节点和队列头部删除节点的功能。 */ #include<iostream> #include<stack> using namespace std; templa
阅读全文
摘要:/* * 给定一棵二叉树和其中一个节点,如何找出中序遍历 * 序列的下一个节点?树中的节点除了有两个指向左、右 * 子节点的指针,还有一个指向父节点的指针。 */ /* * 如果一个节点有右子树,那么他的下一个节点就是右子树中的最左节点。 * 如果节点没有右子树,如果节点是父节点的左子节点,那么下一
阅读全文
摘要:/* * 二叉树的遍历方式: * 前序遍历:先访问根节点,再访问左子节点,最后访问右子节点。 * 中序遍历:先访问左子节点,再访问根节点,最后访问右子节点。 * 后序遍历:先访问左子节点,再访问右子节点,最后访问根节点。 */ /* * 输入二叉树的前序遍历和中序遍历的结果,请重新构建该二叉树。 *
阅读全文