avatar
文章
162
标签
107
分类
5

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

Doraemon's Blog

Leetcode 48. 旋转图像
发表于2023-10-01|算法|01字典树
48. 旋转图像矩阵从外到内,是一圈一圈的,只要能把一圈旋转90度,内层圈找好数据关系,for循环就可以搞定每一圈 对于一圈:对于第一行(除了最后一个元素)而言,只要把这些元素旋转四次就回到了原来位置,所以只要循环四次,把中间遍历到的元素都移到下一次即将遍历的位置即可 如何把当前元素放到下一个即将访问的位置?如果只是简单的覆盖,下一个元素将丢失,容易想到的是用temp存储即将丢失的元素,但这样实现起来有许多细节很难写,用交换实现则特别简单,找一个临时变量,每次都把当前位置和临时变量进行交换,则实现了旋转操作 12345678910111213141516171819202122232425262728293031323334353637383940class Solution { public: static struct node { int x, y; node(int x, int y) { this->x = x; this->y = y; ...
operator的两种用法(重载和隐式类型转换)
发表于2023-10-01|算法|01字典树
重载略 隐式类型转换构造函数的隐式类型转换利用operator进行的隐式类型转换成为operator算子的隐式类型转换,讲这个之前先了解构造函数的隐式类型转换,请看以下代码 123456789101112131415class X{ public: int val; X(int _val) { //隐式类型转换 val = _val; }};int main(){ X m = 2; //等价于X m(2); return 0;} 传入一个参数初始化类的构造函数就是构造函数的隐式类型转换,可以理解为将int类型转换为X(class)类型 补充如果不想出现这种隐式类型转换,就可以用explict修饰 具体详解请看: explict详解 operator算子的隐式类型转换而operator算子的隐式类型转换则是相反的,例如以下代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484 ...
指针笔记(指针数组和指向数组的指针,数组中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 ...
缓冲区浅析
发表于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回车 两种输入方式输出内容不一样,第二种多输出了一个空白行 这篇文章只是浅析缓冲区, ...
牛客练习赛-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 ...
C++转载的文章
发表于2023-10-01|算法|01字典树
C++对象的内存布局 C++虚函数表解析 C++函数指针 C++动态绑定和静态绑定
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 && ...
1…456…17
avatar
Doraemon
记录成长经历
文章
162
标签
107
分类
5
Follow Me
公告
纵岁月在笔尖洇开深浅,初心始终是砚台上那方不涸的墨。
最新文章
分布式 ID 的生成方案
分布式 ID 的生成方案2025-09-20
分布式事务
分布式事务2025-09-19
秋招-操作系统篇
秋招-操作系统篇2025-09-17
利用云服务器搭建 vpn
利用云服务器搭建 vpn2025-09-14
Java的线程池
Java的线程池2025-03-03
最新评论
正在加载中...
分类
  • 技术8
  • 生活5
  • 算法88
  • 记录21
  • 题目36
标签
线段树+欧拉函数 AIO kmeans 强化学习 hexo 笔试 凸包 雪花算法 高精 背包 状压+前缀异或和 动态规划 分布式 ID 信息安全 操作系统 ACM冷知识 题目 文件读写 类的加载过程 STL 全排列 Leetcode BIO A*算法 miniob dfs 可持久化系列 异或题 单调栈 二进制 win10 三分 事务隔离 数据一致性 算法 图论 BFS 考研 div3 随笔
归档
  • 九月 20254
  • 三月 20252
  • 二月 20255
  • 一月 20251
  • 九月 20243
  • 八月 20242
  • 七月 20242
  • 二月 20242
网站资讯
文章数目 :
162
已运行时间 :
本站总字数 :
251.9k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Doraemon
框架 Hexo|主题 Butterfly
Hi, welcome to my blog!
搜索
数据库加载中