avatar
文章
170
标签
111
分类
5

首页
分类
友链
说说
Doraemon's Blog
搜索
首页
分类
友链
说说

Doraemon's Blog

缓冲区浅析
发表于2023-10-01|算法|01字典树
缓冲区程序运行输入数据时,从键盘的输入先存储到缓冲区,只有当缓冲区满或者输入回车时程序才会真正地从缓冲区读入数据 1234567int main(){ int a, b; cin >> a >> b; return 0;} in: 1 2\n 例如这里输入空格时程序没有输出,而是将空格也放入了缓冲区,只有输入回车时,程序才从缓冲区中拿出数据,而cin遇到回车、空格、tab时会停止读入,首先拿出1,遇到空格,停止读入,但空格并未被处理,依旧在缓冲区,所以下次读入时,先碰到空格,cin会舍弃 刚开始碰到的 空白字符(空格、tab、回车),读入2,遇到回车,停止读入,但回车依旧在缓冲区 对于上面话的理解可以看下面代码: 123456789int main(){ int a; cin >> a; char c = getchar(); cout << c; return 0;} in_1:1空格回车 in_2:1回车 两种输入方式输出内容不一样,第二种多输出了一个空白行 这篇文章只是浅析缓冲区, ...
指针笔记(指针数组和指向数组的指针,数组中a和&a的区别等)
发表于2023-10-01|算法|01字典树
指针数组和指向数组的指针int p[4]和int (p)[4]有何区别? 前者是一个指针数组,数组大小为4,每一个元素都是一个指向int的指针 后者是指向int[4]类型数组的指针 以上代码若运行会报如下错误 main函数中定义的a数组本质是一个指向int[2]的指针,而函数形参则是一个指针数组,即形参的a是一个二维指针,所以会报错类型不匹配 若将形参改为int (*a)[2]则编译通过 数组中a和&a的区别假如a是一个一维数组,输出a和&a发现结果相同,都是一维数组首元素的地址,但两者虽然值相同,却是不同的 这段代码是没问题的,但若将第二行的&a改为a,则会报错 即编译器认为a是int 类型的,而&a则是int ( )[4]类型的,用大白话讲就是&a编译器可以认出a是一个数组,a则不行 123456789101112#include "stdio.h"int main(){ int a[5] = { 1,2,3,4,5 }; int *ptr = (int *)(&a ...
C++转载的文章
发表于2023-10-01|算法|01字典树
C++对象的内存布局 C++虚函数表解析 C++函数指针 C++动态绑定和静态绑定
牛客练习赛-C-梦迹
发表于2023-10-01|算法|01字典树
题目:梦迹这道题和用树状数组求逆序对那道题目类似,都是把数组值作为树状数组下标,效果等价于权值线段树,本质上是一道树状数组的简单题。 每一个数字为答案的贡献等于getsum(W-num) 因此修改数字时就可以先减去修改前的贡献,加上修改后的贡献,树状数组的维护上,如果数字从a变为b,就把a位置加上-1,b位置加上1即可 考虑答案是否爆int,最差情况是n*(n-1)/2,到1e10,开longlong,其次注意树状数组下标从1开始,而题目a[i]从0开始,因此加上值为1的偏移量 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include <bits/stdc++.h>#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)#define endl '\n'#define int lo ...
LeetCode162-寻找峰值
发表于2023-01-09|算法|01字典树
LeetCode162-寻找峰值 二分找索引,对于mid,如果处于上坡,则答案在右边,如果处于下坡,答案在左边,如果处于低谷,答案任意,如果处于峰顶,即为答案。 注意特判0和nums.szie()-1两个位置 1234567891011121314151617181920212223class Solution { public: int findPeakElement(vector<int>& nums) { int l = 0, r = nums.size()-1, mid; int res; while(l <= r) { mid = (l + r) / 2;// cout << nums[mid] << endl; if((mid == 0 || nums[mid] > nums[mid - 1]) && (mid == nums.size() - ...
考研这一年
发表于2023-01-07|生活|考研
2020年,我考研的一年 1月1日,我正式开始考研我开始准备英语长难句,跟刘晓燕老师的语法课,每天跟群里面发的每日一句,坚持背单词,当时用app+实体书结合的方法进行背诵,A4纸的方法尤其有效,记得由于当时还是寒假在家,动力不足,每天有效学习时长可能只有6个小时左右,所以会花很多时间来背诵单词,当时我非常想考一所985院校,但也不清楚自己的实力,不了解考研流程,所以定了重庆大学这个984.5,有了目标,就有了动力,我从没有断过每日单词打卡,这个习惯我一直保持到10月3日,连续打卡301天,这是我考研路上引以为傲的一项战绩。我深知高数的重要性,所以很早就开始跟汤家凤的基础课,买了他的1800,每天下午都会听一会,做点题,但不多,整个寒假也只是过完了前3章(几乎没咋学) 3月初,开学考研步入正轨我开始提高每日学习时长,能翘的课都翘了,还发现了一个学习圣地,不需要预约,贼适合考研,强过图书馆一万倍,我把考研书籍搬到教室占位,当时的书籍很少,竟然都不需要书立,当时上午学习英语,其余时间留给数学,记得刚开始英语真题时,感觉题目贼难,文章单词都认识,放在一起就不会,题目也是很坑,当时每道阅读题 ...
Git命令
发表于2022-12-31|算法|01字典树
.gitnore文件配置忽视规则 12/文件夹 #忽略此文件夹!/文件夹 #表示此文件夹不忽略 123456789git init //初始化为git仓库git status //查看状态git add file1 file2 //未跟踪或改变文件推送到暂存区git add. //添加所有文件到缓存区git commit -m "备注信息" //将暂存区的文件提交到本地仓库git remote add origin "https://....git" //将本地仓库关联到远程仓库,origin是默认的代表远程仓库在本地的名称git remote -v //查看远程仓库在本地的名称及地址git pull --rebase origin master //和远程仓库的master分支建立联系git push -u origin master //推送到远程仓库,origin代表远程仓库,master代表本地分支
Leetcode-82 含有重复元素集合的组合
发表于2022-02-25|算法|01字典树
1234567891011121314151617181920212223242526272829303132class Solution { public: vector<vector<int>> res; void dfs(vector<int>& candidates,vector<int>& ans,int sum,int pos, int &target){ ans.push_back(candidates[pos]); if(sum+candidates[pos]==target) res.push_back(ans); else if(sum+candidates[pos]<target){ for(int i=pos+1;i<candidates.size();i++){ if(i>pos+1 && ...
Leetcode-1027最长等差数列
发表于2022-02-23|算法|01字典树
和最长上升子序列类似,这里多加了公差的性质,第一种想法是开一个结构体dp一维数组,dp[i].val表示以i位置结尾的最长长度,dp[i].cha表示以i位置结尾的子序列公差,你会发现无法进行状态转移,假设i<j<k,dp[k]被dp[j]更新了,并且更新后长度最大,但这不代表i这个位置就一定不是最长等差序列之一,因为可能dp[i].val和dp[j].val只相差1甚至相同,但两者公差不一样,如果后面再来几个公差和dp[i].cha一样的,而你又没有把k位置给添加到序列中,这个状态没有被考虑,导致错误。 因此需要dp[i][j]表示第i个位置添加到末尾并且公差是j的最长长度。 之后再仿照最长上升子序列进行更新即可。 1234567891011121314151617181920int dp[1100][1100];class Solution { public: int longestArithSeqLength(vector<int>& nums) { memset(dp,0,sizeof ...
Leetcode-80
发表于2022-02-22|算法|01字典树
写麻烦了,总之就是双指针,一个快指针一个慢指针 1234567891011121314151617181920212223242526272829303132class Solution { public: int removeDuplicates(vector<int>& nums) { int len=nums.size(); int cnt=1,L=1; for(int i=1;i<len;i++){ if(nums[i]==nums[i-1]){ if(cnt==2) continue; else cnt++,L++; } else{ L++; cnt=1; } } ...
1…567…17
avatar
Doraemon
记录成长经历
文章
170
标签
111
分类
5
Follow Me
公告
纵岁月在笔尖洇开深浅,初心始终是砚台上那方不涸的墨。
最新文章
word 公式批量转换
word 公式批量转换2026-01-17
内网穿透到底是个什么东西?
内网穿透到底是个什么东西?2026-01-16
从“用户信息”到“向量表示”:一篇把用户特征转 成 Embedding 的完整实战指南
从“用户信息”到“向量表示”:一篇把用户特征转 成 Embedding 的完整实战指南2026-01-12
2025 年度总结
2025 年度总结2025-12-23
强化学习入门
强化学习入门2025-11-08
最新评论
正在加载中...
分类
  • 技术9
  • 生活5
  • 算法89
  • 记录24
  • 题目36
标签
中断处理程序 双端队列+BFS 树链剖分 BIO div3 数据结构 三分 树状数组 线段树+欧拉函数 DFS bitset优化 流控 动态代理 ACM冷知识 矩阵快速幂 python 01字典树 dfs 单调栈 背包 竞赛 Manacher 期望 全排列 离散化差分 动态规划 异或题 启发式算法 可持续化并查集 STL 文件读写 雪花算法 targan 类的加载过程 数学问题记录 操作系统 miniob hexo NIO 事务隔离
归档
  • 一月 20263
  • 十二月 20251
  • 十一月 20251
  • 十月 20252
  • 九月 20255
  • 三月 20252
  • 二月 20255
  • 一月 20251
网站资讯
文章数目 :
170
已运行时间 :
本站总字数 :
272.8k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By Doraemon
框架 Hexo|主题 Butterfly
Hi, welcome to my blog!
搜索
数据库加载中