- 博客(28)
- 问答 (6)
- 收藏
- 关注
原创 传递二维数组--无需设定参数!
传递二维数组的难题直困扰我至今,直到我遇到了《圣经》!一般来说,传递二维数组采用指定行列大小(int array[2][2]);指定列大小(int array[][2]);当作指针传递(int** array);以及本文重重重点介绍的模板非类型形参方式:template <unsigned M,unsigned N>void create(const int (&arr)[M][N]);采用模板非类型形参方式可以直接传入二维数组,而且行列数直使用M,N;很方便有木有
2021-01-15 12:38:27
156
原创 并查集简介
并查集的几个方法1.Quick-find2.Quick-union3.Weighted-QU4.Pathcopression-WeightedQU1.Quick-findQuick-findimport java.io.*;import java.net.*;//并查集public class Temp { public static void main(String[] args){ Quick_find a = new Quick_find(5);
2020-10-17 10:36:52
120
原创 寻找中间链表--Leetcode
Middle of the Linked ListGiven a non-empty, singly linked list with head node head, return a middle node of linked list.If there are two middle nodes, return the second middle node.Example 1:Input: [1,2,3,4,5]Output: Node 3 from this list (Serializa.
2020-09-29 20:45:09
106
原创 队列简介
队列队列简单介绍结点的结构构造队列队列简单介绍队列和栈是常用的两种结构,栈的特点是后进先出,队列特点则是先进先出,可以将队列看作是“排队”的模式;并且队列的出入特点:1. 只能从队头删除2. 只能从队尾添加队列相应的一些操作: 链式队列 队头:添加不变,删除变 队尾:指向nullptr,反 某些抽象Operation: InitQueue(); 初始化 DestroyQueue(); 若Q存在,则销毁 ClearQueue(); 若存在且非空,则清空
2020-09-22 22:17:20
158
原创 四则表达式运算(限制)
四则表达式运算原理介绍表达式转化三级目录原理介绍 本文讲的四则运算表达式包括符号: + - * / ( ) ,即带括号的加减乘除运算。同时能够巩固对栈的理解和运用。 通常我们使用的表达式称为“中缀表达式”,特点是符号再运算数的“中间”;但是这样的表达式让我们的计算机处理较为麻烦,波兰逻辑学家Jan Lukasiewicz就给出了另一种表达式,称“后缀表达式”,也叫“逆波兰表达式”; 譬如给出一个中缀表达式算式 : 9 * ( 3 - 1 ) 用逆波兰表达式即为 :931-* 然后运算顺序
2020-09-21 21:52:21
1242
原创 栈的简介
栈-Stack顺序存储的栈栈的结构栈的基本操作两栈公用空间结构基本操作链栈链栈的结构链栈的基本操作顺序存储的栈 首先我们简单了解下什么是栈,做个比喻,把书堆叠起来,然后再拿走就是栈的特点:后进先出(Last In First Out),并且只能再栈顶进行操作(添加或删除)。话不多说,上代码:栈的结构struct Stack { int top; string* data;};简单加几个功能看看const int MAX = 10;struct Stack { int top;
2020-09-20 22:34:43
98
原创 双向循环链表简介
同单向链表比较,双向链表的优势在于查找的方便性; 单向循环链表仅对于该节点及后继结点的查找便利,但当查找结点前驱节点时就遇到最高时间复杂度O(n),遍历一周; 双向循环链表则只需要O(1),详细代码如下;定义链表结点 给出了两个指针prior 和 next,一个指向前驱结点,一个指向后继结点;struct DulNode{ string data; DulNode* prior; DulNode* next; DulNode():data(""),prior(nullptr.
2020-09-18 16:22:46
2409
原创 静态链表简介
静态链表在存储结构上将使用的是整块的连续的存储空间,而普通链表是零散的并非连续的存储空间。 采用数组的形式构建链表,打破了之前的“数组”与“链表”的区别,在增加删减结点的时候巧妙运用了链表的结构思想,可以看作 "数组形式的链表",下面给出详细的部分代码。struct StaticLinkList {private: string data ; int cur ; int n ;public: StaticLinkList(int a) :data(""), cur(0),n(a) {}.
2020-09-17 22:34:07
618
原创 线性表-链式存储的基本操作
链表的基本操作初始化,添加,删除,排序#include <iostream>using namespace std;//类struct Data { Data* data; int a; Data* next; Data() :data(NULL), next(NULL){}};//链表的基本操作struct List { Data* head; //Operation Data* InitList(); //初始化 bool ListEmpty()
2020-07-14 19:21:35
303
原创 112123---123456
找个例题:http://codeforces.com/contest/1328/problem/B B. K-th Beautiful Stringtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputFor the given ...
2020-04-12 15:25:33
508
原创 小球下落--二叉树编号
题目:小球下落:一颗最大深度 D 的二叉树,所有叶子深度相同,所有节点从上到下,从左到右的编号依次1,2,3,,,,2^D - 1,在节点1处放一个球往下落。每个内节点都有一个开关,初始全部关闭,但每次有小球落到一个开关时状态改变。若关闭,则左走,否则右走,直到叶子节点。一共I个球下落,求第I个球最后所在叶子编号;(I不可超过整棵树的叶子个数,D<=20)初见可以写出...
2020-04-06 23:33:40
283
原创 排序算法--从入门到入门
简单介绍下排序的几种算法,首先来O(n^2):(均以从小到大排序为例)两两比较,每一轮能确定一个位置(第 i 个),比较 i 轮 , 总的来说O(n^2)1.冒泡排序I.第一次比较:取 a[1] = max(a[0],a[1]) (大的后移)第二次比较: 取 a[2] = max(a[1],a[2])......第n-1次比较:取 [n] = max(a[n-2],a[n-1]...
2020-04-05 20:29:06
203
原创 快速幂
求a的b次幂/* a^b 将 b 写成二进制 : b = 2^p1+2^p2+...+2^pk; a^b 写成: a^(2^p1+2^p2+...+2^pk)===>a^(2^p1)*a(2^p2)*...*a(2^pk) 对 p1 --》pk 的递增根据下式: a^(2^p)^2 = a^(2^(p+1))*///快速幂 已测,//当类型为 long long 可达最...
2020-04-02 12:44:02
127
原创 素数线性筛
素数,又称质数,即除了 1 和 本身 再没有其他因子的整数;我们可以通过筛法来求素数:普通筛法for (int i = 2; i <= n; ++i) { if (s[i] == 0) s[p++] = i; for (int k=i*i; k<n; k+=i) prime[k]=false; }相对于普通的筛法,线性筛只是在这...
2020-04-01 22:35:44
203
原创 链表--数组链表
我们也有不用指针的链表,我们之前学的链表是由结构体形成的,譬如说struct stu{ int no; char* name; int score; stu* next;};如此,通过"stu* head"指针不断链接节点,但是创建有些麻烦,现在就 说个简单些的链表,但是这里用来存储的 数据(仅为整型),虽然简单些,但是存储内容有限:因为这边就是用 存储数字 作为下标 逐步进行...
2020-03-29 00:25:57
130
原创 LCS--最长公共子序列
子问题: 从两字符第一个字符分别到str1,str2的第 i , j 个字符所拥有的最大公共子序列,当 i=n且 j = n成立状态: maxNum[i][j] 表示上述边界: 当 i = 0 或 j = 0 时 maxNum[i][j] = 0 —》 max[0][j] = 0 max[i][0] = 0状态转移方程: 对第 i , j 个元素, 1.相等 str1[i] == st...
2020-03-28 23:41:44
98
原创 LIS--最长升序子序列
子问题: 第n个最长--》第i个最长,当i = n 成立状态: maxSum[i] 表示 从第一个元素到第 i 个元素的最长子序列边界: i == 1 时, maxSum[i] = 1转移方程: n=1时,maxSum[n] = 1; 选择时:标准a[i] 与 a[j] 大小 符合:a[i]>a[j] maxSum[i] =max(maxSum[i], maxSum...
2020-03-28 22:49:03
155
原创 Leetcode--打家劫舍 II(动态规划)
打家劫舍 II你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现 金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输...
2020-03-27 21:13:27
126
原创 初学动态规划
浅谈递归,记忆化搜索和动态规划在解决动态规划类问题时,我们常常想到的是递归。递归的时间复杂度是 O(n!),因为递归途中有许多的重复计算,以三角形问题为例:(数字为所在位置计算次数) 1 1 2 1 1 3 3 1 1 4 6 4 1因此,递归在使用时存在的问题最大即使: 重复计算记忆化搜索即使对递归存在的问题进行改进,将每个已经计算过...
2020-03-26 11:47:51
131
原创 Leetcode--爬楼梯
爬楼梯https://leetcode-cn.com/problems/climbing-stairs/solution/pa-lou-ti-by-leetcode/假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1....
2020-03-23 00:17:01
118
原创 Leetcode--买卖股票的最佳时机 II
买卖股票的最佳时机 II题目:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。...
2020-03-22 16:19:16
75
原创 Leetcode--旋转图像
旋转图像题目来源:https://leetcode-cn.com/problems/rotate-image/给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个 矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,...
2020-03-22 10:24:10
88
原创 Leetcode--有效的数独
有效的数独题目:https://leetcode-cn.com/problems/valid-sudoku/判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填...
2020-03-21 16:28:37
98
原创 两数之和--Leetcode第一题
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]用哈希...
2020-03-21 15:27:54
78
原创 ## 牛客OI--种树(贪心策略)
牛客OI–种树(贪心策略)限制:每段路最多种一棵树,目的: 用最少的树 去 满足每段路的 要求分析:要求树能够 种的 “价值最大化”---- 只种一棵树就满足所有需求(理想)-------一棵树能在多个路段(区间)内-------------即把树种尽量种在路段(区间)重合部分如何转换呢?即 从右向左 衍生显然,我们给这些个区间排序(以右端点为准)从小到大,,,需要用...
2020-03-17 23:00:50
340
原创 牛客--活动安排--经典贪心区间
活动安排–经典贪心区间来源:牛客网https://ac.nowcoder.com/acm/contest/950/A经典的贪心区间问题:区间(ai,bi) (aj,bj) …需要得到更多的区间,即:1.以右端点升序排列所有区间-------------------------------->区间长度从小到大<--------------------------------...
2020-03-16 08:20:37
239
原创 牛客OI周赛14-普及组--2Number
牛客OI周赛14-普及组–2Number链接:https://ac.nowcoder.com/acm/contest/4479/B来源:牛客网最大次方我定在20,pow(2,20)>10e6,,,貌似复杂度不是很大,暴力应该没问题依题意,赶快暴力吧,,,#include <iostream>#include <cmath>using namespa...
2020-03-15 11:59:55
149
原创 牛客OI周赛14-普及组-----1 Sring
牛客OI周赛14-普及组-----1 Sring链接:https://ac.nowcoder.com/acm/contest/4479/A来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述牛牛给定一个长度为|S|的字符串S,S中仅包含大小写字母和数字,请你帮他计算出S中有多...
2020-03-15 09:45:56
626
空空如也
牛顿更迭法求平方根的值,请各路大佬帮忙看看问题所在
2019-10-26
C++求完数,小白求指教
2019-10-16
求解输入两正整数的最大公约数,小白请求教
2019-10-10
交换a,b的值,小白求指教
2019-09-24
想让输入的俩值从大到小排列,小白请指教
2019-09-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人