留坑
SindarDawn
QZOIer,FTCer,UESTC ACMer,梦想成为大神的Yuta
展开
-
如何在高并发时防止服务器崩溃
和上一篇文章一样,这个问题也是我在面试中遇到、觉得自己考虑不完全的问题,我没有多线程编程经验(也没有工程经验),对这些问题一知半解,所以看了网上的一些博客,感觉太长的篇幅以后看起来会比较慢,就从中选择了部分我能理解的办法做一个存档。主要参考:https://www.cnblogs.com/hiit/p/11083840.html1.增加服务器、提高硬件能力;2.使用缓存;3.分布式开发;4.使用镜像;5.图片服务器分离;6.优化代码;...原创 2021-05-30 10:14:33 · 765 阅读 · 0 评论 -
C++中为什么不能把所有函数都设置成虚函数?
在面试的时候被问到一个问题,既然虚函数可以不被重写,为什么不把所有的函数都设置成虚函数?我当时的回答是,因为对于工程来说,一个类里可能会有很多的函数,都设置成虚函数的话会有很多不必要的开销(虚函数表)。但总觉得回答不够完善,所以闲下来去了解了一下这个问题:1.有些函数不能设置成虚函数,如:构造函数、内联成员函数、静态成员函数、友元函数、普通函数(非成员函数),他们各有其原因:1)构造函数:不能被继承;构造函数时,函数还没实例化,无法通过虚函数表指针寻找虚函数;2)内联成员函数:内联要求在编译时展开该原创 2021-05-29 17:47:03 · 1205 阅读 · 1 评论 -
每天一个神奇小技巧
本文用于收录sindar在学习时遇到的不好归类又因太简单而难以成文的神奇小技巧,不定时更新1.swap虽然c++提供了swap函数,但有的语言却需要自己写swap,这时常见的做法便是使用一个中间量。void swap(int &a,int&b){ int tmp=a; a=b; b=tmp;}但是如果要节约空间,那就要考虑别的做法,比如使用加/减法。void swap(int &a,int &b){ a=a+b;//a:a+b原创 2021-05-18 11:27:08 · 93 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 剑指 Offer 43. 1~n 整数中 1 出现的次数
剑指 Offer 43. 1~n 整数中 1 出现的次数输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。思路:这个题是属于特别让人讨厌的题233,有几种思路,分0-9,10-99,100-999来做,或者按位来做,我是按位来做的,我个人认为这样会好做很多。然后对每一位进行分析,发现他们有一个很简单的规律来描述其出现次数,可以画图会比较容易看出来,其实就是每个数字在前一个数取最大时要单独考虑,原创 2021-05-03 20:25:15 · 120 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 每日一题 21.5.3 7. 整数反转
整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−2312^{31}231, 2312^{31}231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。思路:如果输入一个2e9+9,结果显然会爆int,但是题目要求不允许使用64位,所以不能用longlong(有题解使用long,其实是钻了不同环境long长度不同的空子,若long为32位,则还是会爆,若long为64位(也就是l.原创 2021-05-03 20:00:44 · 136 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 每日一题 21.4.28 633. 平方数之和
平方数之和给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2a^2a2 + b2b^2b2 = c 。数据范围:0 ≤\leq≤ c ≤\leq≤ 2312^{31}231 - 1思路:枚举i,边界为i*i ≤\leq≤ c,直接判断剩下是否可以被补足,时间复杂度O(c)O(\sqrt c)O(c) 0ms(100%) 5.8M(67%)也可以双指针,可以少sqrt的常数,不过由于本来就是0ms,所以反而空间多用了… 0ms(100%) 5.9M(25%)我看还有用数.原创 2021-04-28 09:33:27 · 125 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 每日一题 21.4.27 938. 二叉搜索树的范围和
二叉搜索树的范围和给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。题意:如题,已经很简洁了思路:其实直接dfs一次都可以,但是可以根据二叉搜索树的特征做剪枝,不访问不满足条件的点。wa了一发,写dfs边界的时候忘记lef,rig本身的约束了/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *.原创 2021-04-27 10:28:46 · 118 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 每日一题 21.4.26 1011 在 D 天内送达包裹的能力
在 D 天内送达包裹的能力传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。数据范围:1 ≤\leq≤ D ≤\leq≤ weights.length ≤\leq≤ 500001 ≤\leq≤ weights[i] ≤\leq≤ 500题意:选定最小m,使得传送天数≤D\le.原创 2021-04-26 17:52:24 · 138 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 剑指offer11 遍历做法和二分做法
剑指 Offer 11. 旋转数组的最小数字题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。题意:输入一个分两段递增的数组,找里面最小的一个数;思路:1.遍历一次记录最小8ms(56%) 11.9M(18%)看到还有找第一个比前一个小的(但因为题意没说能否只搬0个数字到末尾,所以我没写)2.二分查找,利用分两段上升的特原创 2021-04-20 20:10:14 · 116 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 剑指 Offer 10 I&II
剑指 Offer 10- I. 斐波那契数列题意:求斐波那契数列的f(n),n≤100n \leq 100n≤100思路:直接模拟class Solution { static const int modd=1e9+7;public: int fib(int n) { int f[100+5]={0,1}; for(int i=2;i<=n;i++) f[i]=(f[i-1]+f[i-2])%modd; r原创 2021-04-20 19:16:18 · 139 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 剑指 Offer 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列题意:如题目思路:纯模拟(懒惰如我,其实是用的数组x)364ms(45%) 101.9M(28%)class CQueue {int head,tail,num[10000+5];public: CQueue() { head=0;tail=0; } void appendTail(int value) { num[tail++]=value; } int del原创 2021-04-20 19:10:23 · 108 阅读 · 0 评论 -
leetcode刷题记录&题解&c++代码 07
剑指 Offer 07. 重建二叉树题意:使用二叉树的前序遍历和中序遍历构建二叉树;思路:根据两种排序的特点,得到构造方式(通过前序判断端点,根据中序和前序判断孩子节点)我写了两种写法,一次对中序中节点在前序的位置做了预处理,一次没有,时间差别比较大。不做预处理 236ms 24.9M(37%)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;原创 2021-04-20 19:05:50 · 109 阅读 · 0 评论 -
树相关复习笔记
跟着pdf复习了一下,现总结: 一.基本概念及方法: 1.树剖求LCA(可以减少存储空间); 2.求由n 个点组成,深度为m 的二叉树(不一定是完全二叉 树)的个数n,m <100: 树上递推,f[i][j] 表示i 个点,深度不超过j 的二叉树的个数 那么其个数就是用i-1个点组成深度不超过j-1的树的个数(另外一个点加在任意树上,因为每种搭配被枚举了两次。所以不乘以二 时间复原创 2016-10-21 10:33:03 · 403 阅读 · 0 评论 -
UVa11019 Matrix Matcher 留坑[AC自动机]
声明:此题没写,只理解了一下思路,坑留在这里什么时候复习再做。 Given an N M matrix, your task is to nd the number of occurences of an X Y pattern. Input The rst line contains a single integer t (t 15), the number of test原创 2016-10-12 09:54:49 · 404 阅读 · 0 评论 -
SPOJ375 QUERY ON THE TREE 留坑[树剖]
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3…N-1.We will ask you to perfrom some instructions of the following form:CHANGE i ti : change the cos原创 2016-10-12 20:17:56 · 507 阅读 · 0 评论 -
codevs1199开车旅行[倍增] 留坑
同明天搞。 题目描述 Description 小A 和小B决定利用假期外出旅行,他们将想去的城市从1到N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i的海拔高度为Hi,城市 i 和城市 j 之间的距离 d[i,j]恰好是这两个城市海拔高度之差的绝对值,即d[i, j] = |Hi − Hj|。旅行过程中,小A 和小B轮流开车,第一天小A 开车,之后每天原创 2016-10-17 20:37:03 · 396 阅读 · 0 评论 -
hihocoder1167 Advanced Theoretical Computer Science[树剖][LCA]
Advanced Theoretical Computer Science Time Limit: 20000MS Memory Limit: 262144KB 64bit IO Format: %lld & %llu SubmitStatusDescription Yuuka is learning advanced theoretical computer science原创 2016-10-20 19:38:51 · 470 阅读 · 0 评论 -
SGU101 Domino 留坑
网站维修…… Domino Memory Limit: 4096KB 64bit IO Format: %I64d & %I64u StatusDescription Dominoes – game played with small, rectangular blocks of wood or other material, each identified by a numb原创 2016-10-21 15:45:00 · 328 阅读 · 0 评论