- 博客(18)
- 收藏
- 关注
转载 蓝桥杯数正方形
在一个 N×N 的点阵上,取其中 4 个点恰好组成一个正方形的 4 个顶点,一共有多少种不同的取法?这是一道数学归纳题, 正方形可以正着摆放, 也可以斜着摆放, 对于 n * n 的点集, 最大正方形为 (n-1)*(n-1)考虑一个最大矩形内每个边长的正方形, 不论其在何位置1.对于正放的正方形对于边长为 n - 1 的正方形, 正放的有 1*1正方形 (n-1) * (n - 1) 个, 2*2正方形 (n-2) * (n - 2) 个, 3*3正方形 (n-2) * (n - 2)个, .
2022-03-24 20:11:23
765
原创 力扣109题--有序链表转平衡二叉树
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next.
2021-11-10 16:05:34
875
原创 力扣 179. 最大数
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:"210"示例2:输入:nums = [3,30,34,5,9]输出:"9534330"示例 3:输入:nums = [1]输出:"1"示例 4:输入:nums = [10]输出:"10"一个数字数组拼接出最大的数,nums = [3,30,34,5,9],显...
2021-10-31 09:28:45
3797
原创 搞定数据结构之单调栈系列
一、单调栈介绍单调栈非常使用的数据结构,在普通栈的基础上加以优化,使其更加完美的解决一些特殊的普通栈无法解决的问题。 单调栈顾名思义就是栈中元素从上到下是有顺序的,从栈底到栈顶递增我叫他--递增栈,反之递减栈; 从一段序列我们来认识单调栈,找到每一个数字右边第一个比其大的数,没有设为-1,如 序列 3 2 1 4 5,用递减栈来维护该序列,用同等大小的另一个数组存储对应位置的右边最近的大于该元素的数; 首先...
2021-10-17 11:23:38
160
原创 力扣第71题 简化路径
今日收获:stringstream类,定义在 sstream.h 头文件中,<sstream>定义了三个类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。 sstream可以实现数据类型转换、字符串拼接、作为getline(sstream对象, str, '/')的参数读取字符。 string 的 find() 函数,path.find('/', pos)...
2021-10-08 18:41:20
113
原创 力扣将二叉排序树转为递增类链表 897. Increasing Order Search Tree
将二叉排序树转为类链表,一种简单方法可以中序遍历将结果保存到数组中,遍历该数组创建类链表返回;该方法较为繁琐。方法二: 在中序遍历过程中改变指针的指向使其左孩子的右指针指向父节点,父节点左孩子指针置空;因为中序遍历先为最左节点,左右孩子均为空,所以需要一个哑结点和一个指向当前孩子节点的指针;然后从最左侧孩子开始,将哑结点右孩子指向根节点,根节点左孩子置空,当前节点向上移动到根节点;依次向上回溯改变指针指向,这里一个特殊情况,当node节点为tem...
2021-10-07 11:46:32
106
原创 已知前序和中序构造原二叉树解析(C++)
首先简单给一段序列:pre [] = {A, B, D, E, C, F}in [] = {D, B, E, A, C, F }原树:{A, B, C, D, E, NULL, F}先序序列的首个结点一定为根节点,然后我们又从中序遍历知,其序列的根的左侧为左树,右侧为根的右树;将树按先左后右依次创建,在左树中又可存在左子树;由前序序列性质知,根结点后为左侧结点,然后为右侧根节点,右侧子树,因此由前序和中序可以还原一棵原二叉树。下面讲解一下代码实现原理,主要为递归创建,首先创建
2021-10-07 11:25:53
806
原创 Linux apt用途
1.apt 用法mlinux@linux-JYN-PC:~$ apt-get --helpapt 1.6.12ubuntu0.1 (amd64)用法: apt-get [选项] 命令 apt-get [选项] install|remove 软件包1 [软件包2 ...] apt-get [选项] source 软件包1 [软件包2 ...]apt-get 可以从认证软件源下载软件包及相关信息,以便安装和升级软件包,或者用于移除软件包。在这些过程中,软件包依赖会被妥善处理。...
2021-10-07 07:56:00
157
原创 Ubuntu18.04配置
配置声音:pavucontrol打开软件库已安装的sources.list文件: sudo gedit /etc/apt/sources.list修改密码:passwd mlinux关闭所有进程关机:sudo halt定时关机:shutdown -h time now:立刻关机 10:10分钟后关机取消定时关机:shutdown -cvim指令: 1.在主目录下创建存放代码文件的目录,例如mycode: mkdir mycode 2.进入创建的目录: c...
2021-10-07 07:54:13
520
原创 Vim命令总结
vim命令总结1.删除字符: "x"2.删除一行: "dd"3.删除换行符: "J"4.撤销: "u"5.重做: CTRL-R反转撤消 撤消命令还有另一种形式,"U"命令,它一次撤消对一行的全部操作。第二次使用该命令则会撤消前一个"U"的操作。用"u"和CTRL-R你可以找回任何一个操作状态8.保存退出: "ZZ"9.放弃编辑: "q" 用"e"命令放弃所有修改并重新载入该文件的原始内容13.以匹配一个括号为目的移动: "%" 跳转到与当前光标下的括号相匹配的那一个括号...
2021-10-07 07:52:42
361
原创 力扣第496. Next Greater Element I
题目描述:给你两个 没有重复元素 的数组nums1 和nums2,其中nums1是nums2的子集。请你找出 nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出 -1 。nums1 与 nums2 无重复元素且1 为 2 的子集,可以先遍历 2 中每一个元素,找到对应位置元素的右边第一个比其大的元...
2021-10-05 16:06:48
120
原创 C++STL模板平衡二叉树(自动调节平衡、非递归遍历、合并复制删除、横竖打印树、树的复制等方法)
#include <iostream>#include <queue>#include <stack>#include <climits>#include <cstring>#include <iomanip>#define ArraySize 2048/***二叉查找树***/using namespace std;enum EF { LH = 1, EH = 0, RH = -1};templ.
2021-07-22 22:41:02
227
原创 最小和最大优先循环队列(C++)
#include <iostream>#define MAXSIZE 6/** * 循环队列思路: * front 指向队列第一个元素 rear 指向队列最后一个元素的后一个位置,当数组满时,rear最后一个位置,该位置不存储元素 * * 队列为空的条件 rear == front * 队列满的条件 Length() = maxSize - 1 * 队列长度 (rear - front + maxSize) % maxSize * 对头插入元素 f.
2021-06-16 10:48:01
165
翻译 队列实现杨辉三角
#include <iostream>using namespace std;enum StatusCode { SUCCESS, UNDER_FLOW, OVER_FLOW};template<typename T>class Node {public: T data; Node<T> *next; Node(); explicit Node(T item, Node<T> *link = n..
2021-06-14 21:26:32
302
原创 PAT1007 素数对猜想
#include <iostream>#include <valarray>#include <vector>using namespace std;bool IsPrime(int num){ if (num == 2 || num == 3 || num == 5){ return true; } if (num % 6 != 1 && num % 6 != 5){ retu.
2021-06-13 15:09:56
68
原创 1006 换个格式输出整数
#include <iostream>using namespace std;int main() { //定义字符串数组 string str[12] = { "1", "12", "123", "1234", "12345", "123456", "1234567", "12345678", "123456789","B", "S"}; int array[3]; string s; while(s.size() > 3 || s..
2021-06-09 13:23:26
138
2
原创 卡拉兹猜想
/** * 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1, * 则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了, * 我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他数字所覆盖。 * * 现在给定一系列待验证的数字,我们只需要验证.
2021-06-08 13:23:36
787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人