笔试题目/套题
junior19
abcde
展开
-
剑指offer:数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:这题显然要O(n),使用map或者hash复杂度都不理想。方法一:随机算法,假设存在一个数超过一半,随机找出这个数,错误的概率最坏情况下为1/2,那么进行x次随机取...原创 2019-02-12 20:49:25 · 157 阅读 · 0 评论 -
剑指offer:最小的K个数(大根堆)
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路:维护一个大根堆,pop掉大的数,剩下的就是K小,O(nlogn)。手写堆或者STLclass Solution {public: int *a, tot=0; int top(){ return a[1];...原创 2019-02-12 21:15:59 · 278 阅读 · 0 评论 -
剑指offer:整数中1出现的次数(从1到n整数中1出现的次数)(数位dp)
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:正解的数学方法不想了,万金油的做法就是记忆化搜索,dp[pos][sum]表...原创 2019-02-18 16:31:41 · 526 阅读 · 0 评论 -
剑指offer:数组中的逆序对(分治)
[编程题]数组中的逆序对热度指数:243682 时间限制:2秒 空间限制:32768K 算法知识视频讲解 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述: 题目保证输入的数组中没有的相同的数字数据范围:...原创 2019-02-18 20:55:01 · 231 阅读 · 0 评论 -
利用yaml-cpp库对数据结构序列化
有时候我们要将一个int、float、bool转成字符串,这个用boost能简单地实现,但是一些复杂的数据结构比如STL的vector、map、list、set甚至是组合的vector<vector<int> >、map<string, vector<list<double> > >数据结构,可以通过yaml库来实现序列化成字符串,下面简...原创 2019-07-12 17:20:28 · 975 阅读 · 0 评论 -
leetcoder:124. 二叉树中的最大路径和 & 149. 直线上最多的点数
给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。思路:递归,维护以每个点为开始往下延伸的路径的最大值回传给父节点,同时更新答案最大值。/** * Definition for a binary tree node. * struct TreeNode { * int val...原创 2019-07-20 09:47:01 · 232 阅读 · 0 评论 -
无题(updating)
//Kruskal算法# include <iostream># include <set># define A first# define B secondusing namespace std;int pre[103];multiset<pair<int,pair<int,int> > >s;//set容器来对边权排序...原创 2017-03-28 23:30:34 · 249 阅读 · 0 评论 -
AGC CODE FESTIVAL 2017 qual A(部分题解)
★传送门第一题:给定字符串,判断开头是否“YAKI”# include # include using namespace std;int main(){ string s; cin >> s; cout << (s.substr(0, 4) == "YAKI"?"Yes":"No") <<endl; return 0;}第二题:给定N原创 2017-11-08 20:19:51 · 209 阅读 · 0 评论 -
2017广东工业大学ACM新生杯决赛
野生题解。Problem A: junior97与The Flash思路:这题精度有点苛刻了,导致姿势不太好的小伙伴都过不了。我的做法是先求出圆心到顶点的距离,那么求距离直接用余弦定理就OK。# include using namespace std;const double pi = 3.141592653;int n, m, a[1003];double len;原创 2017-12-09 20:21:34 · 2245 阅读 · 0 评论 -
2017广东工业大学ACM新生杯初赛
真想再体验一把新生杯。(部分题解)Problem A: Chinese Remainder Theorem思路:中国剩余定理,套个板子就行了,注意输入的数据要去重。# include # include # include using namespace std;typedef long long LL;const int maxn = 20;int n原创 2017-12-02 17:23:30 · 3034 阅读 · 0 评论 -
大学物理期末复习:静电场&电场中的导体、电介质
电场 电场强度∙\bullet真空介电常数:k=14πε0k=\frac{1}{4\pi\varepsilon_0} ∙\bullet库仑定律:F=kq1q2r3rF=k\frac{q_1 q_2}{r^3}r ∙\bullet电场强度:E=Fq0=14πεqr3rE=\frac{F}{q_0}=\frac{1}{4\pi\varepsilon}\frac{q}{r^3}r电通量 高斯定理∙\b原创 2017-12-16 21:46:13 · 6091 阅读 · 0 评论 -
数据结构期末复习:排序算法
图片来源toptal 本文用几种排序算法演示对一个大小为20的数组排序,主要参考课本《C++数据结构与算法(第四版)》,数组下标默认从0开始。插入排序复杂度O(n2)O(n^2) 先对前ii个数排好序,对于第i+1i+1个数,不断将前面的数后移11位,直到找到合适的位置插进去。 # include <iostream>using namespace std;void insertion_s原创 2017-12-12 16:18:20 · 575 阅读 · 1 评论 -
2017多校第一场补题
落下的题目慢慢补~~HDU:6033~6044Add More Zero题意:计算2^m-1有多少位。思路:log10(2^m) = m*log10(2)即可。# include # include # include using namespace std;int main(){ int m,cas=0; while(~scanf("%d原创 2017-12-27 16:45:04 · 181 阅读 · 0 评论 -
leetcoder:41. 缺失的第一个正数 & 76. 最小覆盖子串
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。思路:首先答案肯定在1~n,那么我们建个长度为N的数组,扫一遍元素组把位于1~n的数放到桶里面,最后扫一下哪个最小的空桶就行,怎么分到困难题的,代码略。下一题给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例...原创 2019-07-20 23:40:40 · 203 阅读 · 0 评论