自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叶子的小本本

菜鸡笔记本

  • 博客(98)
  • 收藏
  • 关注

原创 第四届传智杯全国大学生IT技能大赛 初赛B组题解 -- D题

题目:小卡与质数2Description小卡最近迷上了质数,所以他想把任何一个数都转化为质数!小卡有 T 次询问,每次给你一个数字 x,问有多少个比 x 小的非负整数 y,使得 x⊕y 是质数,其中 ⊕ 表示按位异或。Input第一行一个正整数 T(1≤T≤105),表示有 T 组询问。接下来 T 行,每行一个正整数 x(1≤x≤106)。Output对于每组询问,输出一行一个整数,表示答案。Sample输入95678910100100010000输出24

2021-12-19 21:56:25 1320 1

原创 牛客小白月赛34 A-dd爱科学1.0

题目:dd爱科学1.0Description大科学家dddd最近在研究转基因白菜,白菜的基因序列由一串大写英文字母构成,dddd经过严谨的推理证明发现,只有当白菜的基因序列呈按位非递减形式时,这株白菜的高附加值将达到最高,于是优秀的dddd开始着手修改白菜的基因序列,dddd每次修改基因序列的任意位需要的代价是11,dddd想知道,修改白菜的基因序列使其高附加值达到最高,所需要的最小代价的是多少。Input第一行一个正整数n(1≤n≤1000000)第二行一个长度为n的字符串,表示所给白菜的基因

2021-05-28 22:01:33 402

原创 第三届传智杯决赛B组题解

A.课程DescriptionAC Code#include<iostream>#include<string>#include<algorithm>using namespace std;long long n,m;bool a[30]={0};int main(){ ios::sync_with_stdio(false);cin.tie(0); cin>>n>>m; int ans =0; f

2021-03-28 23:34:34 824

原创 Django——笔记

Django官方中文文档文档里面有详细的入门教程,包括安装教程,学习的时候可以按照文档的顺序进行学习。如果觉得文档读得有点吃力,可以先在B站找一些入门视频吧。# 安装. # 项目需要Python3,如果系统内同时有Python2和Python3,包工具可能需要使用pip3pip install django# 查看版本python -m django --version# 项目尽量使用新的django 版本。# django 3.1# python > 3.6入门Djang

2021-03-26 15:56:27 185

原创 WEB前端开发——HTML基础

这是简单学习了html语言后的笔记。整理在一起,以后就不用到处翻别人的了。学习的课程是慕课网里的一门课。课程页面什么是HTML?HTML不是一种编程语言,而是一种标记语言,有着一套标记标签。HTML使用标记标签来描述网页。标签的用途我们学习网页制作时,常常会听到一个词,语义化。那么什么叫做语义化呢,说的通俗点就是:明白每个标签的用途(在什么情况下使用此标签合理)比如,网页上的文章的标题就可以用标题标签,网页上的各个栏目的栏目名称也可以使用标题标签。文章中内容的段落就得放在段落标签中等等。讲了这

2021-03-26 15:54:52 541

原创 分离式编译模式

分离编译模式源于C语言,在C++语言中继续沿用。简单地说,分离编译模式是指:一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程。分离编译模式的定义一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程。分离编译模式的由来分离编译模式是C/C++组织源代码和生成可执行文件的方式。在实际开发大型项目的时候,不可能把所有的源程序都放在一个头文件中,而是分别由不

2021-03-26 15:50:08 358 1

原创 正则表达式基础——笔记

title: 正则表达式基础——笔记date: 2021-02-09 19:58:45tags:正则表达式是用来简洁表达一组字符串的表达式正则表达式是一种通用的字符串表达框架正则表达式是一种针对字符串表达“简洁”和“特征”思想的工具正则表达式可以判断某字符串的特征归属正则表达式的使用:编译:将符合正则表达式语法的字符串转换成正则表达式特征。正则表达式的语法:正则表达式语法由字符和操作符构成正则表达式常用操作符:操作符说明实例.表示任何单个字符.

2021-03-26 15:44:28 161

原创 LeetCode第228场题解

第一次ak,值得开心一下下。(虽然这场很简单)嘻嘻嘻~1、生成交替二进制字符串的最少操作数Solution有两钟不同的交替字符串,010101 和 101010比较生成两种交替字符串的操作数,选择少的AC Codeclass Solution {public: int minOperations(string s) { int a=0,b=0; int len = s.length(); for(int i=0;i<len;i++)

2021-02-14 12:13:46 140

原创 LeetCode每日一题 - 567. 字符串的排列

题目:567. 字符串的排列Description给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。Sample输入: s1 = “ab” s2 = “eidbaooo”输出: True解释: s2 包含 s1 的排列之一 (“ba”).Solution滑动窗口,滑滑滑~统计s1各字符出现的次数一个窗口,两个指针,初始时,L= 0,R = 0如果s2的当前字符没有在s1出现,将L指针移到当前位置

2021-02-10 13:23:38 200

原创 2021牛客寒假算法基础集训营1 B-括号

题目:括号Description请你构造一个非空的括号字符串,包含正好 k 个不同合法括号对。所谓括号字符串,是指由’(‘和’)'这两种字符构成的字符串。要求构造的字符串长度不超过100000。Input一个整数 k。0=< k <=109Output一个仅包含左右括号字符串,其中有 kk 个合法的括号对。如果有多种构造方法,输出任意一种合法方案即可。Sampleinput3output()()interpretation假设字符串数组下标从 1

2021-02-01 20:48:32 193

原创 LeetCode每日一题 - 1631. 最小体力消耗路径(BFS)

题目:1631. 最小体力消耗路径Description你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往 上,下,左,右 四个方向之一移动,你想要找到耗费 体力 最小的一条路径。一条路径耗费的 体力值 是路径上相邻格子之间 高度

2021-01-29 11:10:44 398

原创 LeetCode - 1579. 保证图可完全遍历(并查集+贪心)

题目:1579. 保证图可完全遍历DescriptionAlice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边:类型 1:只能由 Alice 遍历。类型 2:只能由 Bob 遍历。类型 3:Alice 和 Bob 都可以遍历。给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何

2021-01-27 21:32:26 169

原创 LeetCode每日一题 - 959. 由斜杠划分区域(并查集)

题目:959. 由斜杠划分区域Description在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。SampleSolution利用并查集求解连通分量个数。将方格分成NxN个网格,网格数等于给出字符串数组中的字符总数将每个网格分成四个区域,如下首先考虑单个网格内的合并根据该网格对应的字符,进行不同的合并操

2021-01-25 21:28:07 291

原创 oracle数据库 - SQL语言预备知识

预备知识:1、用户的创建与删除create user testuser identified by d123; --创建用户testuser,密码为d123grant connect ,resource to testuser; --授予testuser 用户 connect、resource 权限2、定义基本表的基本语法create table <表名>(<列名><数据类型>[<列级完整性约束条件>] [,<列

2021-01-05 16:22:54 224

原创 C++选择排序(直接选择/堆排序)

选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 —百度百科实现代码#include<iostream>#include<string>#include<stack>#i

2021-01-04 10:42:51 504

原创 C++ 交换排序(冒泡/快速排序)

前置知识所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 —百度百科实现代码#include<iostream>#include<string>#include<algorithm>using namespace std;void bubbleSort(int a[], int len) {//冒泡排序 从小到大 b

2021-01-04 10:42:37 301

原创 C++ 插入排序 (直接插入/拆半插入/希尔排序)

前置知识插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 。 -----百度百科实现代码#include<iostream>#inclu

2021-01-04 10:42:28 233

原创 C++二叉排序树的创建、插入、删除

二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。Code#include<iostream>#include<string>#include<algorithm&g

2021-01-04 10:42:14 1628

原创 C++归并排序(2-路归并)

前置知识归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 —百度百科实现代码#include<iostream>#include<string>#include<stack>#include<algorithm>usin

2021-01-04 10:41:52 418

原创 LeetCode 每日一题 - 239. 滑动窗口最大值

题目:滑动窗口最大值Description给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。Solution暴力求解肯定是不可取的。我们需要一个单调递减的栈来维护窗口内的值。队头元素便是当前窗口中的最大值。每次更新窗口内的元素时,拿当前要插入的元素,从栈尾开始和栈内元素比较,栈内元素小于要插入的元素,就将栈内元素删掉。直到找到一个大于要插入元素的栈内元素或者栈空,将

2021-01-02 11:41:56 387

原创 C# 通过配置文件获取连接字符串,读取app.config配置文件时,提示“System.TypeInitializationException 类型初始值设定项引发异常“ 的一个可能有效的解决方案

直接将app.config配置文件原有的内容清空(建议先复制下来,备份),然后贴上下面给出的代码:<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="strCon" connectionString="data source=localhost:1521/xe;User id=XXX;password=XXX"/> &lt

2020-12-29 09:51:41 455

原创 c++模板函数的声明和定义该在什么文件里?

最近在写模板函数的时候,发现了一个问题。按照江湖规矩我们的声明一般放在.h文件,定义放在.cpp文件。而在写模板函数的时候,套用江湖规矩会出错。解决方法:将模板函数的声明和定义都放在.h文件中。(不讲武德)粗浅分析:我们不将普通函数的定义放在.h文件中,就是怕在多个.cpp文件都用到该.h文件,造成多重定义。而对于模板,在实例化模板之前,编译器对模板的定义体是不处理的。所以就没有了会出现多重定义的顾虑。而在进行实例化模板函数,要求编译器在实例化模板时必须在上下文中可以查看到其定义实体。参考文章:

2020-12-04 11:30:42 1552

原创 VS “xxx.exe触发了一个断点“

问题描述:生成解决方案成功,运行的时候却弹出一个错误——“xxx.exe触发了一个断点"。有可能是因为数组越界造成的,仔细检查每一处用到了数组的地方。比较大可能是因为用指针动态分配数组空间,然后访问时数组越界。PS:吃一堑,长一智...

2020-11-30 22:37:14 4221

原创 LeetCode每日一题 - 147. 对链表进行插入排序(经典插入排序)

题目:对链表进行插入排序不知道什么是插入排序的小伙伴,可以看看我写的另一篇很简单的介绍:插入排序相信你已经知道什么是插入排序了,那这题就直接按着插入排序的想法写就好了。将原链表分为一个已排序的链表,一个未排序的链表,将未排序链表中的节点逐一插入已排序的链表中。AC Codeclass Solution {public: ListNode* insertionSortList(ListNode* head) { if(head==NULL||head->next==

2020-11-20 15:36:16 137

原创 LeetCode每日一题 - 134. 加油站(枚举+贪心)

题目:加油站Description在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。Solution最直接的想法就是枚举每一个加油站作为起点,然

2020-11-18 23:55:22 171

原创 牛客题霸 - 反转字符串题解

题目:反转字符串Solution_1如果你知道 reverse() 函数的话,可以偷个懒AC Code_1class Solution {public: string solve(string str) { reverse(str.begin(),str.end()); return str; }};Solution_2头尾交换,实现反转AC Code_2class Solution {public: string solve(

2020-11-07 22:25:24 224

原创 LeetCode - 127. 单词接龙 (经典BFS)

题目:单词接龙Description给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:1、每次转换只能改变一个字母。2、转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。Sample示例 1:

2020-11-07 11:24:53 204

原创 LeetCode每日一题 - 57. 插入区间 (简单模拟)

题目:插入区间Description给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。Sample示例 1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例 2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]

2020-11-04 09:26:22 111

原创 LeetCode每日一题 - 129. 求根到叶子节点数字之和(递归)

题目:求根到叶子节点数字之和Description给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。Sample输入: [4,9,0,5,1] 4 / \ 9 0 / \5 1输出: 1026解释:从根到叶子节点路径 4->9->5 代表数字 495.从

2020-10-29 09:10:28 114

原创 LeetCode - 143. 重排链表 (栈和队列)

题目:重排链表Description给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。Sample给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.Solution每次取当前第一个和最后一个节点,重新连接,得到多条两个节点的链(总节点数为奇数时有一条一个节点的链),按要求串起来,

2020-10-21 23:30:05 97

原创 LeetCode - 925. 长按键入 (栈)

题目:长按键入Description你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。Sample输入:name = “alex”, typed = “aaleex”输出:true解释:‘alex’ 中的 ‘a’ 和 ‘e’ 被长按。PSname.length <= 1000typed.l

2020-10-21 23:22:00 157

原创 牛客 - 表达式求值 (栈的应用)

题目:表达式求值Description给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。Input输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号。所有参与运算的数字均为 0 到 231-1 之间的整数。输入数据保证这一行只有0~9、+、*这12种字符。Output输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于4位时,请只输出最后4位,前导0不输出。Sample示例1输入1+1*3+4

2020-10-12 21:23:46 419

原创 LeetCode - 150. 逆波兰表达式求值 (栈的应用)

题目:150. 逆波兰表达式求值Description根据 逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。Sample示例 1:输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:

2020-10-12 17:02:14 131

原创 C++LeetCode - 141.环形链表 (快慢指针)

题目:141.环形链表Description给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。Sample示例 1:输入:head = [3,2,0,-4

2020-10-10 12:04:38 96

原创 LeetCode第 209 场周赛 5532.奇偶树

题目:5532.奇偶树Description如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 :二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减给你二叉树的根节点,如果二叉树为 奇偶树 ,则返回 true ,否则返回 false 。Sample示例1:输入:root = [1,10,4,3,nu

2020-10-04 22:20:42 183

原创 C++LeetCode每日一题 - 2. 两数相加

题目:2.两数相加Description给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。Sample输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807Solution

2020-10-04 01:03:12 182

原创 java实验报告9 面向接口编程

9.1 实验目的接口回调是多态的另一种体现,接口回调是指可以把使用某一接口的类创建的对象的引用赋值给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程成为对象功能的接口回调。所谓面向接口编程,是指当设计某种重要的类时,不让该类面向具体的类,而是面向接口,即设计类中的重要数据是接口声明的变量,而不是具体类声明的对象。本实验的目的是掌握接口回调和面向接口编程思想。9.2 实验要求小狗在不同环境条件下可能

2020-10-04 00:00:12 4506 4

原创 超级无聊的城堡游戏

无聊的文字游戏!开启小白的有趣人生!Room.javapublic class Room { public String description; public Room northExit; public Room southExit; public Room eastExit; public Room westExit; public Room(String description) { this.description =

2020-10-03 23:26:05 197

原创 java实验报告6 类变量与实例变量

6.1 实验目的类变量是与类相关联的数据变量,而实例变量是仅仅和对象相关联的数据变量。不同的对象的实例变量将被分配不同的内存空间,如果类中有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量。也就是说,对象共享类变量。类中的方法可以操作成员变量,当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量,方法中出现的类变量也是该对象的变量,只不过这个变量和所有的其他对象共享而已。实例方法可操作实例成员变量和静态成员变量,静态方法只能操作静态成

2020-09-30 17:04:27 1827

原创 java实验报告5 类与对象

5.1 实验目的掌握 Java 类的定义和使用,以及对象的声明和使用。理解构造函数的概念和使用方法。掌握类及其成员的访问控制符的使用。5.2 实验要求按要求编写一个 Java 应用程序:第一,定义一个表示学生的类 Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”;第二,为类 Student 增加一个方法 public String toString( ),该方法把 Studen

2020-09-30 16:45:22 4024

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除