- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Leetcdoe-Day19-代码随想录-栈与队列-1047-150
只需要注意一下及时把栈顶圆元素得到并pop,然后要记得字符串的类型要转换成长整型,记住stoll函数。:简单题,最后需要注意反转字符串即可。
2024-06-26 12:52:05
197
原创 Leetcdoe-Day18-代码随想录-栈与队列-232-225-20
每一轮遍历字符串中的元素,有以下几种情况,1. 是(,那么把)进栈;3. 是【,那么】进栈。4. 是右括号,但是和栈顶不匹配那么false;5. 是有括号,匹配,那么pop;6. 此时栈空了,但是字符串没有遍历完,那么false;7. 字符串遍历完了,但是栈里还有元素,那么false。:用两个栈来实现队列,一个用于接收元素,一个用于pop元素。其中重点在于pop函数,要把sin里的元素放进sout才可以pop。:一个队列用来pop元素,另一个用来备份。优化后可以使用一个队列就完成栈的模拟。
2024-06-25 16:02:23
359
原创 Leetcdoe-Day17-代码随想录-字符串-344-541-54-151
两个指针,一个在大串,一个在小串,如果指针元素相同则一起向前,否则不进入while循环,直走i。如果s是由一个子串重复多次构成的字符串 ,则s2 + s1 = n + k*n = n + (k-1)那么S‘=s+s从下标为1处搜索,如果s由重复子串构成,则find返回1,否则,返回s.size()。如果s是由它的一个子串 n 重复多次构成的字符串,那么s可以分为两部分:s = k。:老办法,整体反转,子串反转,三个reverse就可以解决。故如果s是由一个子串重复多次构成的字符串,则S‘中包含s。
2024-05-22 17:55:26
390
原创 Leetcdoe-Day16-代码随想录-字符串-344-541-54-151
解题思路如下:移除多余空格,将整个字符串反转,将每个单词反转。分为三个函数求解,其中移除多余空格函数需要多理解。:还是要多练习输入输出的acm模式,这次换了一个oj通过率很感人,都是一些奇怪的语法错误。:双指针,用swap,也可以直接reverse。:双指针,用swap。
2024-05-21 11:50:50
304
原创 Leetcdoe-Day15-代码随想录-哈希表-1-454-383-15-18
主要思路是用一个map来存储遍历过的元素,然后遍历原数组的时候检查map中和否有元素和数组元素的和为target。因此顺序是,遍历数组元素,检查它的对象(也就是相加等于target的对象)是否在map中,如果有,那么返回数组元素下标和map元素下标,如果没有,就把该数组元素插入map中,插入时,key(first)为数组值,value(second)为元素下标。intint。
2024-05-18 11:04:45
933
原创 Leetcdoe-Day14-代码随想录-哈希表-242-349-202
需要注意的是,这里结果集可以不用题目中要求返回的vector,因为vector无法去重,去重有点繁琐,所以干脆使用std里面的unordered_set,即无序集合(题目没有要求有序,如果要求有序则使用set。:求和的过程中,sum会重复出现,所以这意味着一旦sum重复出现了就可以返回false了,因为不可能是快乐树,因此需要一个unordered_set记录sum。然后不断重复地对n的每个位数求平方和,直到sum变成1,否则过程中如果出现了重复的sum那么直接跳出循环返回false。
2024-05-16 14:17:08
397
原创 Leetcdoe-Day13-代码随想录-链表-面试题目0207-142
链表相交,就是指指向节点的指针相同,即cura=curb。由于两个链表如果在末尾可能出现相交,那可以将两个链表末尾对齐,然后从短链头开始往后搜索,即cura/curb移动到同时开始的位置。:分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。
2024-05-15 21:15:29
130
原创 Leetcdoe-Day12-代码随想录-链表-206-24-19
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。链表比较简单,尽快梳理完,开始看算法!四月底到现在一直在忙考试和别的事情,要加快进度了。:一定要画图分清楚指针交换顺序。
2024-05-14 14:41:07
320
原创 Leetcdoe-Day11-代码随想录-链表-203-707
删除节点,只要将上一个节点的next指针,指向下一个节点就可以了,但是该节点依然存留在内存里,只不过是没有在这个链表里而已。所以在C++里最好是再手动释放这个节点,释放这块内存。**题解:**使用C++来做leetcode,如果移除一个节点之后,没有手动在内存中删除这个节点,leetcode依然也是可以通过的,只不过,内存使用的空间大一些而已,但建议依然要养成手动清理内存的习惯。但是要注意,要是删除第五个节点,需要从头节点查找到第四个节点通过next指针进行删除操作,查找的时间复杂度是O(n)。
2024-04-28 22:26:38
168
2
原创 Leetcdoe-Day10-代码随想录-数组-59-54-LCR146
模拟过程,需要确定循环不变量,即每次循环都左闭右开。:和54一样,但是要记得array是空值的情况,不然会出现野指针。:和59差不多,但是多了最后一个判断奇偶行列的情况。
2024-04-24 11:01:25
154
原创 Leetcdoe-Day9-代码随想录-数组-209-904-76
那么如何判断超过三种了呢?可以使用哈希,也就是右指针往前到i,那么编号为fruit[i]的桶里就+1,如果这个fruit[i]是刚刚加进来的,那么kind也+1, 此时判断kind是否超过2,如果超过则左指针指向的fruit[j]就要被踢出子数组,此时代表fruit[j]桶里要-1,同理如果此时fruit[j]的桶里空了,那么kind-1,直到kind小于2,这个子数组才成立,我们再去计算子数组的长度,并更新最小值。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。
2024-04-19 22:39:30
162
原创 Leetcdoe-Day7-代码随0想录-数组-移除元素-27-26-283-844-977
首先是有序数组,那么重复项一定是相邻的。其次心里一定要有双指针移动的动画,本质还是元素移动交换。把握数量关系,nums[fast+1]==nums[fast]则继续前进,nums[fast+1]!=nums[fast]则做交换。因为数组的地址是连续的,不可以单独删除数组中的某个元素,因此考虑在数组中移动元素然后对有效位计数。快指针遍历数组,慢指针遇到target则开启元素移动。:同样是快慢指针,遇到零则交换,而不是取代。
2024-04-11 15:38:56
240
原创 Leetcdoe-Day6-代码随想录-数组-二分查找-34-69-367
需要注意的是if判断的最后一个条件,也就是除了大于和小于之外,不一定是等于,会存在舍入误差,所以最后一个else中还是需要对mid*mid的结果是否等于num做出判断的,这里可以必写成mid==num/mid的形式,因为会存在舍入误差,输入5会return true。这里也可以暴力但是不优雅,可以牛顿但是不会,所以二分。情况一:target 在数组范围的右边或者左边,例如数组{3, 4, 5},target为2或者数组{3, 4, 5},target为6,此时应该返回{-1, -1}
2024-04-08 13:48:19
363
原创 Leetcdoe-Day5-代码随想录-704-35
*总结:**二分两种写法,一种是target在闭区间,此时while内部i=j是有意义的,左右范围都需要往前进一步,如下代码。如果题目要求“找到第一个大于/小于x的下标”,用左闭右开区间(while l < r),每个mid做大于、小于等于两次判断,不在循环体里输出,循环结束返回l或r(l=r,不要返回mid),就是所求下标。**题解:**简单二分法,需要注意的是,if结构中已经对nums[mid]==target的情况做出了判断,那么在对左右范围进行改变的时候就直接+1就好,否则会timeout。
2024-04-07 22:46:59
389
2
原创 Leetcode-Day3-1-121
题解:用min存放买入时的股票值,用max记录最大利润,min通过迭代得到最小值,max得到卖出时的最大利润,但是注意一定要先买再卖。上周一直在准备鹅肠校招,虽然凉凉,但也没事,还有时间。两题就两题吧,再不回去宿舍就关了。题解:暴力就完了,也可以哈希。
2024-03-18 22:47:04
186
原创 Leetcode-Day2-3-9-58
题解:首先遍历字符串,没遇到空格就把存放单词长度的变量加1,遇到空格就把存放单词长度的变量清零。此时存在一个问题,就是万一最后一个单词出现之后,还有几个空格怎么办,可以加入result变量做哨兵,每一轮result只存放大于等于length的数字。题解:需要注意两个关键点,一个是回文数的少数情况,比如0是回文数,负数都不是回文数。今天先到这吧,只做了三题,第一题滑动窗口的边界问题耗费很久调代码,已经困飞了,做个收尾工作就打卡离开实验室啦~更好的题解:倒序遍历字符串,定义一个计数的整型变量。
2024-03-06 22:03:43
269
原创 Leetcode-Day1-283-35-136-169
研一读了半年多了,刷题基本荒废了,重新点一下技能树,一来保持手感,二来看见最近实验室的师兄师姐们在准备春招实习生,所以也一起准备一下。首先假设第一个元素为多数元素(即第一支军队占领高地),在遍历数组的过程中,若遇到相同元素,则当前军队增加一个士兵,反之则被其他军队消灭一个士兵,若此军队在高地上驻扎的士兵全部被消灭,则下一军队占领高地,直到最后返回占领高地的军队(即多数元素)。解题思路:将数组中各个元素看成不同的军队,根据题目中描述:多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
2024-03-05 22:20:13
469
原创 MySQL报错no connection established
今天登数据库突然发现无法连接数据库了,很奇怪导致项目跑不起来,查阅得知是因为没有开启MySQL本地服务。
2023-05-07 20:02:17
2475
原创 读论文【联合共享性与通信干扰的移动边缘计算环境下多个边缘应用部署策略研究】
【Joint Shareability and Interference for Multiple Edge Application Deployment in Mobile-Edge Computing Environment】个人解读和整理,仅作记录备忘。
2023-01-09 12:25:39
194
原创 读论文【能量和延迟受限的移动边缘计算环境中的多目标计算共享】
【Multi-Objective Computation Sharing in Energy and Delay Constrained Mobile Edge Computing Environment】
2022-10-21 21:36:11
284
原创 从零开始学习【边缘计算】
研0第一次论文阅读任务是关于边缘计算,车联网的,由于之前完全没接触过边缘计算,故整理以下基本概念,计算原理和相关论文索引以便后续查阅。
2022-10-16 15:31:29
1746
原创 【PAT】B1039/A1092 到底买不买
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。figbuy.jpg图 1输
2022-08-31 16:53:37
71
原创 pip安装模块报错:File “xxxxxxxxxx\urllib3\response.py“, line 507, in read
python使用pip安装模块显示reponse.py文件报错
2022-06-19 21:24:04
224
原创 【PAT】错题整理(持续更新)
A1065. A+B and C (64bit)Given three integers A, B and C in [−2^ 63,2^63], you are supposed to tell whether A+B>C.Input Specification:The first line of the input gives the positive number of test cases, T (≤10). Then T test cases follow, each consists
2022-05-24 00:20:22
210
原创 Vscode+Anaconda安装Cuda+Pytorch搭建风格迁移相关的深度学习环境
总结一下安装pytorch的过程,认为最简单并且最不容易出错的安装方式如下,我用的是vscode+Anaconda+Pytorch1、首先要确保已经配置好了vscode和anaconda3.0的环境,为了保证之后再vscode中能够成功import torch包,我们需要先根据自己的nvidia版本下载对应的cuda。(关于cuda,pytorch的关系,以及如何找到对应的cuda,这个链接说的很明白可以看看有助于对版本的理解:https://www.jianshu.com/p/ac70300b598b
2022-04-20 11:02:06
2724
2
原创 蓝桥杯【基础练习】BASIC-1 闰年判断
问题描述给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:年份是4的倍数而不是100的倍数;年份是400的倍数。其他的年份都不是闰年。输入格式输入包含一个整数y,表示当前的年份。输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。样例输入2013样例输出no样例输入2016样例输出yes数据规模与约定
2022-01-15 08:29:02
67
原创 蓝桥杯【基础练习】BASIC-11-十六进制转十进制
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535不知道为什么在VS平台运行出来,测试了5个结果都是正确的,但是在蓝桥杯平台会被报错。可能是因为“不超过8位"的原因? 有待改善,先吃饭了好饿!在这里插入代码片#include <iostream>#include <string>#include<
2022-01-09 11:47:51
377
原创 蓝桥杯【基础练习】BASIC-12-十六进制转八进制
问题描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入 2 39 123ABC样例输出 71 4435274【提示】
2022-01-09 11:06:07
106
原创 零碎学习—12.2日问题解决
new和malloc 的区别1.malloc与free是c++/c语言的标准函数,new/delete是C++的运算符。2.他们都可用于申请动态内存和释放内存。new/delete比malloc/free更加智能,其实底层也是执行的malloc/free。为啥说new/delete更加的智能?因为new和delete在对象创建的时候自动执行构造函数,对象消亡之前会自动执行析构函数(即删除)。3.new返回指定类型的指针,并且可以自动计算出所需要的大小。int *p;p= new int;//返回类
2020-12-03 10:02:18
47
原创 零碎学习—生存期和存储类型(听课总结)
一、生存期1.静态存储期对于(函数名,全局变量)具有文件作用域的标识符,它们的生存期从开始被定义,一直到程序被关闭。在这期间一直可以被访问和调用。2.自动存储期对于(局部变量)代码块作用域的标识符,生存期只有在代码块被运行时可以被访问或者调用,代码块执行完毕后,就被销毁。二、存储类型(内存为该变量开辟一块什么类型的空间。)1.自动变量(auto)该变量的存储类型为默认类型,链接属性为none(none,internal,external)#include <stdio.h>in
2020-11-10 18:47:09
139
原创 零碎学习—函数指针与指针函数的小总结
一、指针函数1.一个函数,它的返回值是一个指针,用于指向某个变量的地址。2.例如,传递写一个函数用于返回一个字符串#include <stdio.h> char *getword(char c); char *gerword(char c) { switch(c) { case 'A':return 'Apple'; case 'B':return 'Bag'; case 'C':return 'Cat'; case 'D':return
2020-11-10 17:57:57
124
原创 零碎学习—可变参数
使用可变参数要要使用#include <stdarg.h>的头文件,使用里面的宏va_list vap,定义一个可变参数列表va_start(vap, n),初始化参数列表vap, 有n个参数。va_arg(vap, int) ,调用参数表中的参数,参数类型为int。va_end(vap) , 结束接下来应用于一个简单的求和函数。#include <stdio.h>#include <starg.h>int sum(int n,...);int ma
2020-11-02 13:57:22
64
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人