自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 N皇后(回溯)

ps:皇后可以攻击同一行、同一列以及左上角、右上角、左下角、右下角这些角度方向上的任意单位。class Solution {public: vector<vector<string>> solveNQueens(int n) { vector<vector<string>>res; vector<vector<int&...

2020-02-29 17:52:50 180

原创 全排列ⅠⅡ(回溯+剪枝)

class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<int>temp; vector<vector<int>>res; DFS(res, temp, nums, 0); return res...

2020-02-28 14:43:54 433

原创 子集ⅠⅡ(回溯+剪枝)

class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> res; vector<int> temp; DFS(res, nums, 0, temp); return r...

2020-02-27 17:21:59 211

原创 牛牛的背包问题(网易(DFS))

#include<iostream>#include<vector>#include<cmath>using namespace std;typedef long long LL;void DFS(LL sum, int cur, int n, vector<LL>&v, LL w, int &count){ if (...

2020-02-27 16:19:52 135

原创 牛牛的闹钟(网易)

比较简单的题,只需要把时间全部转换为minute,然后求出剩余时间=上课时间-起床时间-路上时间,最后在所有大于等于0剩余时间里找到最小值,对应的下标就是那个闹钟。#include<iostream>using namespace std;struct node{ int hour; int minute;}alarm[105];int main(){ int ...

2020-02-26 12:18:49 118

原创 矩阵重叠(网易(穷举))

#include<iostream>#include<vector>using namespace std;//想要知道某个重合区域在多少个矩形内,可以转化为计算这个重合区域的左下角在多少个矩形内。外面两层循环遍历了所有重合区域可能的左下角,最里层循环计算这个左下角在多少个矩形内。这个算法可以保证一定能算出正确结果,但也算了很多额外的情况,有点像充分条件的意思。...

2020-02-25 22:00:48 451

原创 数对(网易)

#include <iostream>using namespace std;typedef long long LL;int main(){ LL n, k; cin >> n >> k; LL count = 0; if (k == 0) count = n*n; else { //注意到当除数是y时,当x=1~n时,余数是1,2...

2020-02-24 11:20:07 113

原创 迷路的牛牛(网易)

一次就AC了:#include<iostream>using namespace std;char LR[1005];int main(){ char position[4] = { 'N','W','S','E' }; int N; cin >> N; for (int i = 0; i < N; i++) cin >> LR[i...

2020-02-23 22:25:59 86

原创 安置路灯(网易(贪心))

//遍历路灯字符串,遇见“.”,就给计数器+1,然后往后挪三个位置。如果遇到“X”,就直接往后挪一个位置。#include <iostream>using namespace std;char road[1005];int main(){ int t; cin >> t; for (int i = 0; i < t; i++) { int n...

2020-02-22 22:44:48 183

原创 被3整除(网易)

#include<iostream>using namespace std;typedef long long int ll;//一个数所有位数的和相加如果等于3的倍数,则这个整数是3的倍数。 这里第一个数是1,第二个是12,第三个是123,第n个数是123……(n-1)nint main() { ll l, r; while (cin >> l >&...

2020-02-22 22:09:52 192

原创 同步与异步传输

同步与异步传输的区别(1)、异步传输的单位是字符而同步传输的单位是桢。(2)、异步传输通过字符起止的开始和停止码抓住再同步的机会,而同步传输则是以数据中抽取同步信息。(3)、异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序。(4)、异步传输相对于同步传输效率较低。同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。异步传输方式并不要求发送方和接...

2020-02-22 19:33:54 409

原创 200228题(网易(排序+二分))

#include <iostream>#include <string>#include <vector>#include <algorithm>#include <unordered_map>using namespace std;const int maxn = 100000;struct node{ int h...

2020-02-21 22:17:15 156

原创 200227题(最长回文子序列)

dp[i][j] 表示 s 的第 i 个字符到第 j 个字符组成的子串中,最长的回文序列长度;然后注意遍历顺序,i 从最后一个字符开始往前遍历,j 从 i + 1 开始往后遍历,这样可以保证每个子问题都已经算好了。//最长的回文子序列和最长的回文子串不是一回事//dp[i][j] 表示 s 的第 i 个字符到第 j 个字符组成的子串中,最长的回文序列长度class Solution {...

2020-02-20 22:34:01 100

原创 200226题(最长连续序列(并查集+哈希))

法1:并查集+哈希,时间复杂度O(n)class Solution {public: unordered_map<int, int> F;//<x,F[x]> int father(int x) { if (F[x] != x) F[x] = father(F[x]);//并查集寻找并刷新爹 return F[x]; } int longestC...

2020-02-19 19:48:01 161

原创 简单题(二叉搜索树中第k小的元素)

很简单的中序遍历,代码如下://中序遍历class Solution {public: int kthSmallest(TreeNode* root, int k) { DFS(root, k); return res; } void DFS(TreeNode* root, int k) { if (root == NULL) return; DFS(root-...

2020-02-18 22:46:57 163

原创 200224题(最长公共子序列)

思路:二维dp定义一个二维数组 dp 用来存储最长公共子序列的长度,其中 dp[i][j] 表示 S1 的前 i 个字符与 S2 的前 j 个字符最长公共子序列的长度。考虑 S1i 与 S2j 值是否相等,分为两种情况:当 S1i==S2j 时,那么就能在 S1 的前 i-1 个字符与 S2 的前 j-1 个字符最长公共子序列的基础上再加上 S1i 这个值,最长公共子序列长度加 1,即 dp...

2020-02-18 22:27:53 105

原创 200223题(18vivo两个字符串中最长公共子串长度)

Longest Common Substring问题:有两个字符串str和str2,求出两个字符串中最长公共子串长度。比如:str1=acbcbcef,str2=abcbced,则str和str2的最长公共子串为bcbce,最长公共子串长度为5。算法思路:1、把两个字符串分别以行和列组成一个二维矩阵。2、比较二维矩阵中每个点对应行列字符中否相等,相等的话值设置为1,否则设置为0。3、通过...

2020-02-18 21:47:56 154

原创 三维dp(vivo)

dp[i][k][j]表示数量约束为j,重量约束为k时,前i个矿石的最佳组合对应的最大重量;数量约束:j<=矿石总数量/2;重量约束:k<=矿石总重量/2;第一次写的代码是用三维dp,vivo说空间超过了限制,只通过90%的测试用例。所以又进行降维(去掉第一维),二维dp,代码就可以AC了。完整代码如下:#define _CRT_SECURE_NO_WARNINGS#in...

2020-02-17 17:25:08 938

原创 MySQL基础

SQL(Structured Query Language),即对数据库进行操作的一种语言包含三个部分:·DMLdata manipulation language(数据操作语言)用于检索或更新数据库:insert,delete,update,select增删改查·DDLdata definition language(数据定义语言)用于定义数据的结构:create drop alt...

2020-02-15 22:43:26 1669

原创 微信红包(16腾讯(快排))

使用快速排序找中位数,找到以后检查一下中位数是否出现了总次数的一半以上。#include <iostream>#include <vector>#include <algorithm>using namespace std;class Gift {public: int getValue(vector<int> gifts, int ...

2020-02-15 13:45:14 184

原创 三维dp(vivo)

第一次遇到三维的01背包问题,不过还是很快解决了:AC的代码如下://dp[i][j][k]表示当磁盘大小为j,内存大小为k时,前i个应用程序的最佳组合对应的最大用户数(01背包)#include <iostream>#include <cstdio>#include <cstdlib>#include <vector>#includ...

2020-02-14 16:58:26 217

原创 200219题(简单的01背包问题vivo)

题目:小v负责一次活动礼品采购,每一款礼品的受欢迎程度(热度值)各不相同,现给出总金额以及各个礼品的单价和热度值,且每个礼品只购买一个,如何购买可以使得所有礼品的总热度值最高。输入:第一行是一个正整数,表示总金额(不大于1000)第二行是一个长度为n的正整数数组,表示礼品单价(n不大于100)第三行是一个长度为n的正整数数组,表示对应礼品的热度值输出: 一个正整数,表示可以获得的最高...

2020-02-14 15:57:39 195

原创 200218题(假期(dp问题)腾讯)

#include<iostream>#include<vector>#include<algorithm>using namespace std;#define INFINITY 65536//dp[i][0],dp[i][1], dp[i][2] 分别记录第i天 休息/锻炼/工作时累计的最小休息天数.int main() { int n; ...

2020-02-14 14:44:52 205

原创 5道题(18春腾讯)

法1:我最直接的想法#include<iostream>using namespace std;int main() { long long int n, m; cin >> n >> m; long long int sum = 0; int flag = -1;//flag为-1表示为负,为1表示为正 long long int coun...

2020-02-13 21:36:14 233

原创 200216题(删除链表中的倒数第N个结点(双指针简单题))

思路:先加个哨兵结点(好处是可以避免很多特殊情况的特判),快慢指针,快指针先走n步,然后快慢一起走,直到快指针走到最后。时间复杂度:O(n)//先加个哨兵结点,快慢指针,快指针先走n步,然后快慢一起走,直到快指针走到最后//时间复杂度O(n)class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n...

2020-02-13 11:41:45 144

原创 两道二分法的简单小题

class Solution {public: int search(vector<int>& nums, int target) { if (nums.size() == 0)return -1; int left = 0, right = nums.size() - 1; while (left <= right) { int mid = ...

2020-02-10 22:06:46 155

原创 200215题(最长上升子串(腾讯(dp问题或贪心)))

法1:dp,时间复杂度O(n2),空间复杂度O(n)定义dp[i]的值代表以nums[i]结尾的最长子序列长度;初始化,dp[i] 所有元素置1,含义是每个元素都至少可以单独成为子序列,此时长度都为1;如果nums[i]严格大于[0,i)中的某个数j,那么说明nums[i]就可以在dp[j]的基础上形成一个长度为dp[j]+1的上升子序列;因此,得到递推关系:if(nums[j]<...

2020-02-10 21:19:47 439

原创 200214题(柱状图中最大的矩形(辅助栈))

思路:两种方法:1.暴力法;2.辅助栈先来法2:此时初始化max_area=0;此时max_area=0;此时max_area=0;此时cur_area=((2-1)-0)*7=7;max_area=7;此时cur_area=((2-1)-(-1))*6=12;max_area=12;此时max_area=12;此时cur_area=((3-1)-(-1))*5=2...

2020-02-09 16:09:42 185

原创 合并两个有序链表(双指针或递归)

两种思路:双指针或递归思路1:双指针,贼简单,正常逻辑struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {...

2020-02-08 21:38:34 358

原创 200212题(美团、度小满)

思路:以一个具体例子进行解释以:4 43 1 3 2为例。首先,创建一个二维数组res,作用是求每个路由器的辐射范围;第 i 个路由器(路由器从1开始编号)的辐射范围 [left,right) 为 [res[i][0], res[i][1]) ,注意是前闭后开区间。那么res={[1,5),[1,4),[1,5),[2,5)}路由器从1开始编号的代码如下:#include&lt...

2020-02-06 19:13:22 466

原创 200211题(美团(dp问题))

本质也是01背包的小变异问题,我分别用二维dp和一维dp实现,代码如下:#include<iostream>#include<vector>#include<algorithm>using namespace std;const int maxn = 100 + 5;int n, p[maxn], a[maxn], q[maxn], b[maxn...

2020-02-06 11:28:09 289

原创 200210题(美团)

思路:题目要求是最少需要的天数,第一想法是贪心算法(也就是每次的区间总想着取最长的)对于题目给出的例子 4 1 8 2 5我们仔细考虑一下 :① 3 0 7 1 4 ② 3 0 6 0 3结果就是(4-1) + (8-2) + 5特殊情况就是最后一个数,他一定是自身的大小,即最后加的结果都是他自身。#include<iostream>#...

2020-02-05 21:52:18 107

原创 200209题(美团(dp问题))

本质就是一个01背包的小变异问题。#include<iostream>#include<algorithm>#include<vector>using namespace std;#define INFINITY 65536int main() { int n, X;//菜品数量n和券的最低使用价格X cin >> n >&g...

2020-02-05 19:55:50 427

原创 200208题(美团)

先保存0的所有下标,再使用滑动窗口。#include <iostream>#include <vector>#include <algorithm>using namespace std;const int N = 300000;int arr[N];int main(){ int n, k; vector<int> res;...

2020-02-05 10:47:39 129

原创 200207题(美团)

#include<iostream>#include<algorithm>#include<vector>using namespace std;int sum = 0;const int N = 100000;vector<int> v[N];//思路: 其实就是每条边都会走两遍,一共有n - 1条边,所以2*(n - 1), 最...

2020-02-04 20:03:48 175

原创 200206题(分隔链表huawei19)

自己很快就能写出这个代码,双指针,不用额外新建结点,空间复杂度O(1),时间复杂度O(n)#include<iostream>using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};//空间复杂度O(1),时间复杂度...

2020-02-02 21:49:57 100

原创 200205题(字符串解码huawei19)

用辅助栈,图解如下:明白了思路以后,代码不难写:#include<iostream>#include<string>#include<stack>using namespace std;class Solution {public: string decodeString(string s) { int len = s....

2020-02-02 21:01:53 179

原创 200204题(括号生成(DFS))

递归三部曲:class Solution {public: vector<string> generateParenthesis(int n) { vector<string> res; DFS(res, "", 0, 0, n); return res; } void DFS(vector<string> &res, stri...

2020-02-02 19:12:38 185

原创 二叉树的Morris遍历算法

法1:中序遍历//如果对没有错误的二叉树进行中序遍历,应该是按升序排列的 //那如果对两个结点交换了顺序,那一定有两个地方不满足“前一个元素 < 当前元素 < 后一个元素” class Solution {private: TreeNode* first = NULL; TreeNode* second = NULL; TreeNode* pre = new Tree...

2020-02-01 21:29:56 631

java基础 综合项目代码

java基础 综合项目

2020-12-21

epoll反应堆.zip

epoll反应堆.zip

2020-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除