自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (4)
  • 收藏
  • 关注

原创 旅途终点站的三种解法

1436. 旅行终点站难度简单42给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市*。*题目数据保证线路图会形成一条不存在循环的线路,因此只会有一个旅行终点站。示例 1:输入:paths = [["London","New York"],["New York","Lima"],["Lima","Sa

2021-02-28 21:54:47 425

原创 对于集合的交集,并集,差集的函数的理解

对于集合的交集,并集,差集的函数的理解算法简介:set_intersection // 求两个容器的交集(intersection==>交叉,交叉路口,十字路口,交集,交叉点)set_union // 求两个容器的并集(union==>联盟,工会,联合,结合,并集)set_difference // 求两个容器的差集(difference==>差异,差别,区别,差值交集功能:求两个容

2021-02-28 21:43:43 1605

原创 快慢指针的应用及其原理(链表中)

快慢指针的应用快慢指针的概念在一个链表中使用速度不同的两个指针,解决一些链表中的实际问题.该方法的主要应用场景:判断一个链表中是否含有环若一个链表中含有环,找到环路开始的位置求链表中倒数第k个个人只碰到了第三个,所以先将第三个写出来求链表中倒数第k个剑指 Offer 22. 链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3

2021-02-28 18:42:14 379

原创 剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点​ 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 `6` 个节点,从头节点开始,它们的值依次是 `1、2、3、4、5、6`。这个链表的倒数第 `3` 个节点是值为 `4` 的节点。​示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.这道题很简单,但这里讲的不是该..

2021-02-28 16:56:38 36

原创 链表中倒数第k个结点

剑指 Offer 22. 链表中倒数第k个节点​ 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 `6` 个节点,从头节点开始,它们的值依次是 `1、2、3、4、5、6`。这个链表的倒数第 `3` 个节点是值为 `4` 的节点。​示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.这道题很简单,但这里讲的不是该..

2021-02-28 16:53:38 67

原创 统计好三元组

统计好三元组](https://leetcode-cn.com/problems/count-good-triplets/)给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。0 <= i < j < k < arr.length|arr[i] - arr[j]| <= a|arr[j] - arr[k]| <= b.

2021-02-28 15:41:05 85

原创 二叉树的镜像

剑指 Offer 27. 二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000题解这道题本身不难,但是有很多种惊艳的解法,特此记录下来一.(个人所写) class Solution { public: TreeNode *mirrorTree(TreeNode *root)

2021-02-27 13:41:09 77

原创 关于引用的优化

关于引用的优化(很有用)如果函数中的参数中有很大的数组,而且,在这个函数中并不改变数组的值,那么强烈建议用引用的形式.函数的形参总是通过实参的拷贝来初始化的,函数的调用所得到的返回值也是拷贝.对于一般而言,而在这其中,平白无故的占了许多内存,如果返回的又是一个很大的数组,那么内存占用更大.举例面试题 04.02. 最小高度树给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是

2021-02-27 11:01:26 92

原创 桶排序的利用

桶排序的利用桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序例题:给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的

2021-02-27 00:16:03 103

原创 C++ STL map容器迭代器遍历

C++ STL map容器迭代器遍历标准库为 map 容器配备的是双向迭代器(bidirectional iterator)。这意味着,map 容器迭代器只能进行 ++p、p++、–p、p–、*p 操作,并且迭代器之间只能使用 == 或者 != 运算符进行比较。值得一提的是,相比序列式容器,map 容器提供了更多的成员方法(如表 1 所示),通过调用它们,我们可以轻松获取具有指定含义的迭代器。成员方法功能begin()返回指向容器中第一个(注意,是已排好序的第一个)键值对的双向迭

2021-02-26 22:51:51 4675

原创 N皇后问题的深度解析(前提是会递归和dfs)

;52. N皇后 II](https://leetcode-cn.com/problems/n-queens-ii/)n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。示例 1:输入:n = 4输出:2解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:n = 1输出:1提示:1 <= n <= 9皇后彼此不能相互攻击,也就是说:任何两个皇后

2021-02-26 07:46:40 198

原创 对一维前缀和和二维前缀和的深刻理解

在这里插入代码片#### 前缀和最近做题的时候经常看到前缀和,所以就系统的查了一下一维前缀和什么是前缀和?前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。设b[]为前缀和数组,a[]为原数组,根据这句话可以得到前缀和的定义式和递推式:定义式递推式一维前缀和 for(int i = 1 ; i<=n ; i++ ) cin >>A[i] ; for(int i = 1 ; i<=n ; i++ )

2021-02-25 21:04:51 187

原创 给你一个数组 `nums`,对于其中每个元素 `nums[i]`,请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 `nums[i]` 你必须计算出有效的 `j` 的数量,其中 `j`

x1365. 有多少小于当前数字的数字给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释: 对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。 对于 nums[1]=1 不存在

2021-02-25 15:20:36 1479

原创 给你两个字符串 `word1` 和 `word2` 。请你从 `word1` 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。

1768. 交替合并字符串给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。示例 1:输入:word1 = "abc", word2 = "pqr"输出:"apbqcr"解释:字符串合并情况如下所示:word1: a b cword2: p q r合并后: a p b q c r示例 2:输入:word1 =

2021-02-25 11:24:15 1180

转载 HTML中的<select>标签如何设置默认选中的选项

3)]

2021-02-25 04:40:10 491

原创 给你一个正整数 `n` ,生成一个包含 `1` 到 `n2` 所有元素,且元素按顺时针顺序螺旋排列的 `n x n` 正方形矩阵 `matrix`。

螺旋矩阵 II](https://leetcode-cn.com/problems/spiral-matrix-ii/)给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n <= 20个人所写;#include "head.h"class S.

2021-02-25 04:09:59 1611

原创 无重复字符串的排列组合

面试题 08.07. 无重复字符串的排列组合无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。示例1: 输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间个人所写这里看不懂就不要看了,==>写的太麻烦,时间一久我也看不懂;class Solution

2021-02-21 15:42:10 646

原创 位运算在代码计算中的用途

位运算在代码计算中的用途符号描述运算规则&与两个位都为1时,结果才为1|或两个位都为0时,结果才为0^异或两个位相同为0,相异为1~取反0变1,1变0<<左移各二进位全部左移若干位,高位丢弃,低位补0>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)&运算规则:0&0=0 0&1=

2021-02-21 09:50:18 111

原创 UVa514 Rails(铁轨)

题意:UVa514 Rails(铁轨)题目:铁轨题目链接:UVa514链接题目描述:某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶入车站。例如,出栈顺序(5 4 1 2 3)是不可能的,但是(5 4 3 2 1)是可能的。分析:首先,要知道这是关于栈的题,而且是用来判断一段数字是否能够用入栈出栈来得出.首先,如果A和B的数字在某个位置是相同的,比如入栈和出栈都是(1,2,3,4,5),那么也就

2021-02-18 20:18:36 107

原创 C++ rand()和srand()的原理;

C++ rand()和srand()的原理;rand()rand()不需要任何参数,但是他会直接返回一个从0->最大随机数的任意一个整数.如果想要产生0~99的随机数,可以表达为rand()%100;===>在任意产生的数中对100求余数但是如果想要产生1-100的随机数,可以表达为rand()%100+1;int num=rand()%n+a;===>num的范围是a~(n-1)+a;但是rand()只会产生一次,即便再次编译,结果仍旧不便;那么就用到了srand

2021-02-17 15:57:30 1068

原创 幂集

面试题 08.04. 幂集幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]利用位运算:nums = [1, 2, 3],长度为3,取看成是1,不取看成是0.那么就有:[0, 0, 0] -> 0[0, 0, 1] -> 1[0, 1, 0] -> 2[0, 1,

2021-02-17 14:20:36 3452

原创 建筑物高度可以增加的最大总和是多少?

在二维数组grid中,gridi代表位于某处的建筑物的高度。 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度。 高度 0 也被认为是建筑物。最后,从新数组的所有四个方向(即顶部,底部,左侧和右侧)观看的“天际线”必须与原始数组的天际线相同。 城市的天际线是从远处观看时,由所有建筑物形成的矩形的外部轮廓。 请看下面的例子。建筑物高度可以增加的最大总和是多少?例子:输入: grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]输出: 35解

2021-02-17 13:23:20 111

原创 用vector创建二维数组的方法;

vector创建二维数组的方法;vector<vector>x(10,vector(10));//创建二维数组;前面是行,后面是列;原理很简单:vector(n, elem); //构造函数将n个elem拷贝给本身。#include#includeusing namespace std;int main(){ vector<vector<int>>x(10,vector<int>(1

2021-02-17 09:56:22 638

原创 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字

2. 两数相加难度中等5635给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9

2021-02-15 14:28:13 4372

原创 求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

剑指 Offer 64. 求1+2+…+n难度中等266收藏分享切换为英文接收动态反馈求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000class Solution {public: int sumNums(int n) {bool a[n][n

2021-02-15 13:28:53 162

原创 2021-02-03

uva455如果想要判断一个子字符串是否是最小周期的那个字符串,必须要全部遍历一遍才会知道;所以可以用字符串的首尾相连,即(i+j)%n,一个一个判断;另一个思路是,可以先截取字符串前n个,将这前n个加到截取剩下的字符串末尾,然后与原串比较是否相同,如果相同,则说明这个字符串的长度就是最小周期;(substr函数)#include <bits/stdc++.h>using namespace std;int main(){ char str[100]; int N;

2021-02-03 17:23:50 51

原创 uva1586

#include<iostream>#include<cstring>using namespace std;int main(){ char a[100]; int T; cin>>T; while(T--) { cin>>a; double ans=0; int n=strlen(a); for(int i=0; i<n; i++)

2021-02-03 11:46:44 53

原创 2021-02-02

下面的程序意图在于统计字符串中字符1的个数,可惜有瑕疵:#include <stdio.h>#define maxn 10000000+10int main(){ char s[maxn]; scanf("%s", s); int tot = 0; for(int i = 0; i < strlen(s); i++) if(s[i] == 1) tot ++; printf("%d\n", tot

2021-02-02 21:16:06 84

原创 CSS基本内容

CSS阅读本文章需注意,在以下css代码中很有可能会出现"//",但实际上这是不对的,正确应用方法:"/**/“但是因为typora没有注释的快捷键,为了方便才使用”//",理解就可.什么是 CSS?CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在 CSS 文件中多个样式定义可层叠为一个CS

2021-02-02 08:24:19 617 2

原创 环装序列

环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。例如,图3-4的环状串有10种表示:CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等。在这些表示法中,字典序最小的称为"最小表示"。输入一个长度为n(n≤100)的环状DNA串(只包含A、C、G、T这4种字符)的一种表示法,你的任务是输出该环状串的最小表示。例如,CTCC的最小表示是CCCT,CGAGTCAGCT的最小表

2021-02-02 00:18:52 154

原创 生成元

如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小生成元。无解输出0。例如,n=216,121,2005时的解分别为198,0,1979。#include<stdio.h>#include<cstring>using namespace std;int main(){ int a[100005]; memset(a,0,sizeof(a)); for(int i=1;i<100005;i++)//先做

2021-02-01 23:27:02 1013

原创 猜数字游戏的提示

题目描述实现一个经典"猜数字"游戏。 给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。输入输入包含多组数据。 每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。 猜测序列全0时该组数据结束。 n=0时输入结束。输出看样例。样例输入41 3 5 51 1 2 34 3 3 56 5 5 16 1 3 51 3 5 50 0 0 0101 2 2 2 4 5 6 6 6 91 2 3 4 5 6 7 8

2021-02-01 22:24:17 320

空空如也

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

TA关注的人

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