自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 error: call to implicitly-deleted default constructor of ‘unordered_map<pair<int, int>, int>‘ m;

C++ 报错如果用pair作为键初始化unordered_map,例如unordered_map<pair<int, int>, int> m;会报下面的错误:error: call to implicitly-deleted default constructor of ‘unordered_map<pair<int, int>, int>’ m;分析unordered_map中用std::hash来计算key,但是C++中没有给pair做

2021-01-26 16:30:55 14329 4

原创 CCF CSP认证 202012-2 期末预测之最佳阈值 100分——C++代码

CSP认证 202012-2 期末预测之最佳阈值题目解题思路看到子任务中有m <= 10^5,看到这里,我们必须条件反射地想到:如果用二重循环暴力求解,则一般会超时!尝试以后果不其然,仅通过了70%的测试点,拿到70分。那么,我们究竟如何优化,才能拿到全部的100分呢?跟几位同学交流后,听到了很多使用一重循环解决的方法,也非常巧妙。下面我就介绍一下我在考场上想到的一种优化二重循环的方法,比较容易看懂。因为如果用暴力二重循环,会重复很多不必要的遍历和比较操作,所以我们有必要进行优

2020-12-30 17:05:40 4462 5

原创 UserWarning: Using a target size (torch.Size([64])) that is different to the input size (torch.Size(

Pytorch Warning问题UserWarning: Using a target size (torch.Size([64])) that is different to the input size (torch.Size([64,1]))解决在forward(self, x)函数体中,在return x之前,加一句x = x.squeeze(-1)以达到降低一维的目的~...

2020-12-30 15:44:51 26252 11

原创 AttributeError: module ‘pandas‘ has no attribute ‘DataFrame‘ 报错解决 Python Pandas

问题在我们新建DataFrame时,例如import pandas as pddf = pd.DataFrame()可能会出现报错AttributeError: module ‘pandas’ has no attribute ‘DateFrame’分析这是一个挺奇怪的问题,让人抓不着头脑:我明明大小写都拼写对了啊!为啥就报错呢?原因出在版本问题~较老版本的pandas会报错,而新版本的不会。解决直接用pip更新pandaspip install --upgrade pa

2020-12-30 15:29:28 57165 29

原创 LeetCode “AddressSanitizer: heap-buffer-overflow on address ...“ 报错解决

问题我们在刷LeetCode时,往往会出现这种报错信息:AddressSanitizer: heap-buffer-overflow on address 0x602000000040 at pc 0x000000406b5e bp 0x7ffc15cc0320 sp 0x7ffc15cc0318分析看到Address, overflow,往往是地址访问越界的错误。因此,遇到这个报错信息,说明数组的下标访问越界。解决既然数组下标访问越界,则需要检查代码中与数组下标有关的判断语句、赋值语句或循

2020-12-30 14:55:46 2917

原创 LeetCode 1695. 删除子数组的最大得分 Python代码——Leetcode刷题笔记+思路分享

LeetCode 1695. 删除子数组的最大得分解题思路分享子数组用一个list维护,并使用dict不断更新子数组中元素在原数组中的索引,方便后续的删除操作。一次遍历,如果当前遍历到的数字存在于子数组中,那么一定要把子数组中的第一个元素到与当前遍历到的数字重复的元素删掉。因为就算保留,也会因为存在重复元素而使子数组之和更小。因此,必须从与当前遍历到的数字重复的元素的下一个继续遍历,如此做可以减少循环次数,进而节省时间。代码class Solution: def maximumUn

2020-12-21 11:25:35 267

原创 CCF CSP认证 202006-4 1246 (digits) 利用五分钟拿到28分 Python代码

CCF CSP认证 202006-4 1246 (digits)利用五分钟拿到28分首先,我是个菜鸡,我只是分享一个快速拿分的方法,以备考试中的不时之需~Python代码n = int(input())s_key = input()s_pre = "1"s = ""mod = 998244353for i in range(n): s = "" for j in s_pre: s = s + str(pow(2, int(j))) s_pre

2020-12-09 17:07:26 482

原创 LeetCode 164. 最大间距 C++代码——Leetcode刷题笔记+思路分享

LeetCode 164. 最大间距给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和

2020-11-26 17:30:50 504

原创 LeetCode 452. 用最少数量的箭引爆气球 C++代码——Leetcode刷题笔记+思路分享

LeetCode 452. 用最少数量的箭引爆气球本题可使用贪心算法来解决~贪心算法(先排序再取交集)先按照区间左端点从小到大排序,再依次取交集,取不到交集就将计数器res加一;到最后,虽然前面的区间都被计算了,但最后一个区间或最后一个取了交集的区间没有被计算在内,所以要再将计数器res加一;因为每个气球被引爆的方式无外乎三种:和前面的气球同时被引爆;自己一个球被引爆;和后面的气球同时被引爆;所以上述贪心算法一定可以找到全局最优解~代码class Solution {pu

2020-11-23 16:18:27 339 2

原创 LeetCode 5606. 具有给定数值的最小字符串(第216场周赛第2题) C++代码——Leetcode刷题笔记+思路分享

LeetCode 5606. 具有给定数值的最小字符串(第216场周赛第2题)本文总结了两个方法:方法一为替换法;方法二利用两个指针进行位置互换操作;方法一:替换法从左向右遍历,遇到第一个不为0的数,将其直接移动到第一位;遇到第二个不为0的数,就将其移动到第二位;以此类推~遍历完后,将后面没有被替换的位置全部用0代替。代码class Solution {public: void moveZeroes(vector<int>& nums) {

2020-11-22 18:02:03 315

原创 LeetCode 283. 移动零 C++代码——Leetcode刷题笔记+思路分享

LeetCode 283. 移动零本文总结了两个方法:方法一为替换法;方法二利用两个指针进行位置互换操作;方法一:替换法从左向右遍历,遇到第一个不为0的数,将其直接移动到第一位;遇到第二个不为0的数,就将其移动到第二位;以此类推~遍历完后,将后面没有被替换的位置全部用0代替。代码class Solution {public: void moveZeroes(vector<int>& nums) { int index = 0, len =

2020-11-19 12:01:22 319

原创 LeetCode 134. 加油站 C++代码——Leetcode刷题笔记+思路分享

LeetCode 134. 加油站本文总结了两个方法:方法一为博主所使用的方法,暴力求解;方法二为方法一的优化版,同LeetCode官方题解,作为学习资料,摘录在这篇博客上。方法一:暴力求解以每个加油站为起点,尝试计算能否跑完一圈:如果可以就直接返回该起点;如果不可以就继续以下一个加油站为起点进行搜索。我自认为代码非常简单易懂~代码class Solution {public: int canCompleteCircuit(vector<int>& gas,

2020-11-18 12:03:07 495

原创 剑指 Offer 09. 用两个栈实现队列 C++代码——OJ: LeetCode

剑指 Offer 09. 用两个栈实现队列我们需要维护两个栈s1和s2,使用s1接收新添加进来的元素,使用s2辅助出队操作。对于构造函数CQueue(),当然是要把s1和s2全部清空,扫清一切障碍~对于appendTail(int value)函数,直接将元素push到s1中;对于deleteHead()函数,应该先判断s2是否为空如果s2为空,则依次将s1中元素出栈并压入s2中,完成后再将s2的栈顶元素pop出来,就满足了先入队先出队的原则;如果s2不为空,则直接pop出s2的栈顶元素;

2020-11-16 20:37:43 222

原创 LeetCode 1122. 数组的相对排序 C++代码——Leetcode刷题笔记+思路分享

LeetCode 1122. 数组的相对排序本文总结了两个:方法一为博主使用的方法,傻瓜式重写cmp()函数;方法二使用了计数排序的思想,同LeetCode官方题解,写下来巩固一下~方法一:重写cmp()之所以叫傻瓜式,因为我在cmp中把四种情况都列了出来,代码虽然清晰但并不是特别简洁~代码class Solution {public: vector<int> relativeSortArray(vector<int>& arr1, vector

2020-11-14 19:23:54 339

原创 Hive NoSQL MapReduce 简要学习笔记

1. 实例说明Hive数据模型Hive数据模型:Tables所有数据存储在HDFS中的一个目录Primitives: numeric, boolean, string and timestampsComplex: Arrays, maps and structsPartitions表可以按照某个字段的值划分分区对表格进行分区处理(Partition),便于局部数据的查询操作,如按时间分区、按地域分区等,将具有相同性质的数据存储到同一磁盘块上,从而加快查询效率。Buckets分区数据可以

2020-11-12 10:49:24 320

原创 LeetCode 922. 按奇偶排序数组 II C++代码——Leetcode刷题笔记+思路分享

LeetCode 922. 按奇偶排序数组 II本文总结了三个易理解的方法:方法一为博主使用的方法,根据原始思路进行逐步编码;方法二为方法一的简化版,将两个二重循环合并为一个;方法三新建一个数组,用两次一重循环解决。方法一:原始思路第一层循环:寻找不配坐在现有位置上的元素(i和A[i]奇偶性不同)第二层循环:从i+1开始查找,找到第一个同样不配坐在现有位置上的元素,将两者位置互换。因为需要换位置的元素总是成对出现,所以循环在最后一定可以完美结束!代码class Solution {

2020-11-12 10:43:50 263 2

原创 LeetCode 31. 下一个排列 C++代码——Leetcode刷题笔记+思路分享

LeetCode 31. 下一个排列本文总结了两个方法:方法一为直接使用STL库函数,简单易实现;方法二使用了两次一维搜索,详细实现了本题算法。方法一:排序传说,C++ STL库中有着一个比较冷门的函数next_permutation()。有了这个神奇的函数,这不有手就行?直接一行代码给它干掉!代码class Solution {public: void nextPermutation(vector<int>& nums) { next_p

2020-11-10 17:23:11 185

原创 LeetCode 973. 最接近原点的 K 个点 C++代码——Leetcode刷题笔记+思路分享

LeetCode 973. 最接近原点的 K 个点本文总结了两个方法:方法一为本人所使用的直接排序方法,简单易实现;方法二使用了优先队列这一数据结构,耗时更短。方法一:排序重写cmp()函数,使用sort()进行直接排序。代码class Solution {public: static bool cmp(vector<int> a, vector<int> b) { return a[0] * a[0] + a[1] * a[1]

2020-11-10 17:13:38 352

原创 122. 买卖股票的最佳时机 II C++代码——Leetcode刷题笔记+思路分享

0122 买卖股票的最佳时机 II思路简化对数组进行一维搜索,只要后一个数比前一个数大,就进行累加,最后的结果即为所赚钱的最大值!代码class Solution {public: int maxProfit(vector<int>& prices) { int money = 0; for(int i = 0; i < prices.size() - 1; i++) { if(prices[

2020-11-08 11:56:27 249

原创 xxx定律——解题思路+代码+本人遇到的坑

题目描述对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。 请计算需要经过几步才能将n变到1,具体可见样例。输入描述:测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1<=n<=10000)输出描述:对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。示例1输入310输出50解题思路很多博主用函数的递归调用,我是用的循环+判断,实现连续输入和计数,不清楚哪种方法

2020-05-27 23:15:04 384

原创 CDN的工作原理和实现方法

CDN的工作原理和实现方法为什么会出现CDN?

2020-05-26 20:33:16 1816 2

空空如也

空空如也

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

TA关注的人

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