![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
关于一般题
常规题
youngsea8
喜欢学习!
展开
-
面试题 10.09. 排序矩阵查找 简单题
思路多加了个vector<vector<int>>vector<vector<int>>vector<vector<int>>的赋值导致一直超时,疑惑人生。最简单的思路,从右上角或者左下角进行搜索,例如右上角,当matrix[i][j]<targetmatrix[i][j]<targetmatrix[i][j]<target时候,i++i++i++,否则j−−j--j−−,寻找等于的数字。代码class S原创 2021-04-22 15:50:56 · 87 阅读 · 0 评论 -
23. 合并K个升序链表 堆的简单应用
思路堆中存放的元素就存放链表第一个元素的指针,排序方式按照第一个元素指针指向的元素的大小来排序,比较简单,直接放代码。初次建堆时间复杂度O(nlogn),n是所有链表长度O(nlogn),n是所有链表长度O(nlogn),n是所有链表长度,下面每获取一个元素调整堆的时间复杂度O(logn)O(logn)O(logn),总的时间复杂度O(nlogn)O(nlogn)O(nlogn)。执行用时:36 ms, 在所有 C++ 提交中击败了49.24%的用户内存消耗:13 MB, 在所有 C++ 提交中击败原创 2021-04-08 23:34:42 · 78 阅读 · 0 评论 -
264. 丑数 II 最小堆或者是三指针
思路和”面试题 17.09. 第 k 个数 最小堆或者是三指针“一样。代码class Solution {public: // int nthUglyNumber(int n) { // // 指示所有乘以2,3,5得到的数字 // int k1=0,k2=0,k3=0; // vector<int>vs(n+1); // vs[0]=1; // int minn=1; // for(原创 2021-04-08 23:01:16 · 69 阅读 · 0 评论 -
215. 数组中的第K个最大元素 简单的堆排
解题思路简单的堆排,时间复杂度lognlognlogn代码class Solution {public: int findKthLargest(vector<int>& nums, int k) { int n=nums.size(); if(k>n){ return 0; } make_heap(nums.begin(),nums.end(),less<int>()原创 2021-04-08 22:15:06 · 67 阅读 · 0 评论 -
面试题 17.09. 第 k 个数 最小堆或者是三指针
思路想写筛法,失败见leetcode题解。思路,只需要求1和3,5,7的任意(3, 5, 7)倍的数才是满足要求的。两种方式,一种是维护一个最小堆,堆顶存放上面的满足要求的数,需要对数字去重一个是维护三个指针:(来自leetcode)vector<int>nums(k+1);nums[0] = 1;int i3 = 0;int i5 = 0;int i7 = 0;// 遍历一共k-1次for (int i = 1; i < k; ++i){原创 2021-04-07 20:48:45 · 65 阅读 · 0 评论 -
20-2-12-水题-POJ1936
POJ1936All in AllTime Limit: 1000MSMemory Limit: 30000KTotal Submissions: 37391Accepted: 15593DescriptionYou have devised a new encryption technique which encodes a message by inser...原创 2020-02-12 13:40:17 · 96 阅读 · 0 评论 -
20-2-11-String-POJ3080
POJ3080Blue JeansTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 24558Accepted: 10824DescriptionThe Genographic Project is a research partnership between IBM and The Nation...原创 2020-02-11 19:48:09 · 132 阅读 · 0 评论 -
20-2-9-String-POJ1035
POJ1035链接水题, 过原创 2020-02-11 16:14:07 · 79 阅读 · 0 评论 -
Problem D Froggie(模拟)t
2018 ICPC North America Qualifier ContestProblem D Froggie(模拟)#pragma warning(disable:4996)#include <algorithm>#include <cstring>#include <iostream>#include <cstdio>#inc...原创 2019-07-16 19:04:25 · 288 阅读 · 0 评论 -
20-2-9-Greedy-POJ2586
POJ2586Y2K Accounting BugTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 19190Accepted: 9689DescriptionAccounting for Computer Machinists (ACM) has sufferred from the Y2K b...原创 2020-02-10 16:44:00 · 113 阅读 · 0 评论 -
20-2-8-Greedy-POJ2109
POJ2109Power of CryptographyTime Limit: 1000MSMemory Limit: 30000KTotal Submissions: 29427Accepted: 14684DescriptionCurrent work in cryptography involves (among other things) large ...原创 2020-02-10 15:52:02 · 71 阅读 · 0 评论 -
20-2-7-Greedy-POJ1328-LineSegmentInteractions
Radar InstallationTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 130723Accepted: 28687DescriptionAssume the coasting is an infinite straight line. Land is in one side of co...原创 2020-02-07 00:42:10 · 109 阅读 · 0 评论 -
1022 Digital Library (30 分) 模拟,map和set
思路其实我们不需要存储每一本书的所有的信息,只需要知道其对应的ididid就可以了,这样的话我们只需要建立title,author,keyword,publisher,yeartitle,author,keyword,publisher,yeartitle,author,keyword,publisher,year到ididid的映射,由于每一个映射的valuevaluevalue值不一定为1,我们可以用vector<>vector<>vector<>来存储,题目要求原创 2021-03-09 21:43:22 · 58 阅读 · 0 评论 -
1781. 所有子字符串美丽值之和 暴力水题,学一下遍历map的方法
### 解题思路暴力,学习了一下auto遍历unordered_map<char,int>的用法原文const int INF=0x3f3f3f3f;class Solution {public: int beautySum(string s) { int n = s.size(); int res = 0; for(int L=0;L<n;L++){ unordered_ma原创 2021-03-08 21:48:04 · 69 阅读 · 0 评论 -
978. 最长湍流子数组
解体思路dpdpdp的方法上次都写过了。这次采用滑动窗口的方法自己写的代码// 动态规划方法// class Solution {// public:// vector<vector<int>>dp;// int maxTurbulenceSize(vector<int>& arr) {// int n=arr.size();// if(n<1){// retu原创 2021-03-02 14:45:11 · 82 阅读 · 0 评论 -
1017 Queueing at Bank (25 分) 模拟,较为简单
思路模拟题,优先队列维护每一个窗口完成的时间就可以了。不知道会不会有人的处理时间>60,这个要不要处理,没处理过了。写的麻烦了,看这个简洁的代码比较好。简洁的代码#include<cstdio>#include<iostream>#include<vector>#include<queue>#include<stack>#include<algorithm>using namespace std;int原创 2021-03-01 20:18:47 · 50 阅读 · 0 评论 -
1016 Phone Bills (25 分)
解体思路模拟题,怎么说怎么做就好了,刚开始把所有的输入记录首先按照名字排序,名字相同的话按照时间从小到大排序。这样的话我们始终去寻找匹配的那一组开始通话和结束通话计算其花费的分钟数和花费的钱数就好了,这里不难,但是写起来有一些麻烦。使用map辅助寻找。时间复杂度O(n∗logn)O(n*logn)O(n∗logn)用时,1.5h,还要加速啊。代码#include<cstdio>#include<iostream>#include<vector>#i原创 2021-02-28 22:13:04 · 50 阅读 · 0 评论 -
1014 Waiting in Line (30 分)
思路最坑的一点,题目理解错了。。。槽点一,自己看题目不仔细,想当然的认为肯定是找最先结束的去排队,挂了。槽点二,理解了前面的怎么排队之后,明白了,首先是每个窗口之前有mmm个空缺的位置,顾客找有空缺位置最多的去坐,如果空缺的位置一样多,那么找序号较小的窗口去坐。根据3的理解,也就是前m∗nm*nm∗n个人不需要在外面等的,直接分配就好,剩下的人需要等,等哪个窗口最先没有人(两个窗口一块没有人选序号较小的)进入。理解错了题意,如果有人开始服务的时间在5点之前,结束服务的时间 >=17:00,原创 2021-02-23 22:15:57 · 64 阅读 · 0 评论 -
1009 Product of Polynomials (25 分)
1009 Product of Polynomials (25 分)水题处理有一点小小的麻烦用vector很舒服哈哈哈。代码#include<cstdio>#include<iostream>#include<vector>#include<algorithm>// #includeusing namespace std;typedef struct Node{ int exp; double coe; No原创 2021-02-20 20:33:08 · 44 阅读 · 0 评论 -
15. 三数之和
### 解题思路按照leetcode官方题解的写法,采用双指针进行优化三重循环枚举每一个数字。第一个优化,为了不产生重复的res结果,首先对numsnumsnums数组进行一个排序,i=0,j=i+1,k=j+1i=0,j=i+1,k=j+1i=0,j=i+1,k=j+1这个样子的一直往后枚举,枚举的时候需要去重,具体的说就是说每一个数字比如2在iii这一层循环里只枚举一次。firstfirstfirst+secondsecondsecond+thirdthirdthird=0对于这个,我们得到t原创 2021-02-16 00:49:28 · 55 阅读 · 0 评论 -
20-2-5-状圧枚举-POJ2965
POJ2965The Pilots Brothers’ refrigeratorTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 33516Accepted: 12994Special JudgeDescriptionThe game “The Pilots Brothers: follo...原创 2020-02-05 20:07:15 · 171 阅读 · 0 评论 -
20-2-4-状圧枚举-POJ1753
POJ1753Flip GameTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 59092Accepted: 24592DescriptionFlip game is played on a rectangular 4x4 field with two-sided pieces placed o...原创 2020-02-05 02:01:54 · 18512 阅读 · 0 评论 -
1002 A+B for Polynomials (25 分)
1002 A+B for Polynomials (25 分)下面的代码展示的是一个节省空间的做法,这种做法编码需要花费较长的时间,在实际的比赛中不推荐。下面的这种做法需要注意的是,当两个系数相加位0的时候的特殊情况处理,这里错了一次。比赛的过程中的最快的做法是直接声明两个1005的数字,对应的位置上存储对应的系数,然后直接相加输出就可以。#include<cstdio>#include<iostream>#include<cmath>using nam原创 2021-02-16 14:24:01 · 51 阅读 · 0 评论