![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蒋豆芽的秋招之路
文章平均质量分 79
华为云计算搬砖工
这个作者很懒,什么都没留下…
展开
-
归并——算法(四)
归并递归至底,再从底至上合并结果一般用于存在重复子结构的问题一般能用归并的题都可以用动态规划,不过动态规划不容易想到,归并不错给个例题,将区间划分为多个子区间,使得所有区间拥有的回文子串和最少inputaacabbcbadabcbhoutput5解释a aca b bcbadabcb h#include <bits/stdc++.h>using namespace std;int helper(string str, int i, int j, int l, int r)原创 2020-08-24 17:58:02 · 684 阅读 · 0 评论 -
秋招刷题总结
面试题刷leetcode主要刷Hot100和剑指offer笔试题刷AcWingAcWing我是今天才看到,果然,有好工具才事半功倍。不过没事,这是一个学习过程。继续学习就是了。原创 2020-08-23 09:10:05 · 157 阅读 · 0 评论 -
动态规划——算法(三)
我们在解决问题的时候,可以使用暴力解法,不过时间复杂度很高,至少为O(n2),为了减少时间复杂度,引入动态规划,动态规划应用于存在重复子结构的问题中,暴力解法有很多重复计算,动态规划就是为了帮助我们减少重复计算,所以动态规划提前存储前面计算的值,后面的值来源于已经存储的值,或者只需要在已经存储的值的基础上简单的叠加,这就是动态规划的本质,空间换时间。三个非常重要的领悟:1、动态规划应用于存在重复子结构的问题中,避免重复计算法2、动态规划空间换时间3、动态规划提前存储前面计算的值,后面的值来源于已经存原创 2020-08-22 10:47:59 · 383 阅读 · 0 评论 -
DFS和BFS——算法(二)
二叉树的右视图 中等BFS广度优先搜索,利用队列来实现class Solution {public: vector<int> rightSideView(TreeNode* root) { if (root == NULL) return {}; vector<int> res; queue<TreeNode*> que; que.push(root); while (!que.empty()原创 2020-08-21 11:27:59 · 114 阅读 · 0 评论 -
递归,回溯总结——算法(一)
24游戏给出4个数,运用加减乘除凑齐24#include <bits/stdc++.h>using namespace std;char sign[4] = {'+', '-', '*', '/'};bool res = false;void backTrack(int i, vector<int> arr, vector<bool>& visit, double sum, int count){ if (count == 4 &&am原创 2020-08-21 10:40:14 · 152 阅读 · 0 评论 -
面试题——各种功能函数实现(二)排序算法
快排递归实现class Solution { void quickSort(vector<int>& nums, int l, int r){ if (l >= r) return; int mark = nums[l]; int mark_ptr = l; for (int i=l; i<=r; i++){ if (nums[i] < mark){原创 2020-08-15 14:11:00 · 113 阅读 · 0 评论 -
牛客网编程题输入问题
输入真的是莫名其妙,这里记录一下输入预先不输入数据的组数1 2while(cin >> a >> b){ cout << a+b << endl;}输入预先知道数据个数31 2 3cin>>n;for(int i=0; i<n; i++){ int a; cin >> a; cout << a << endl;}...原创 2020-08-01 20:39:07 · 665 阅读 · 0 评论 -
LeetCode高频面试题记录(七)
四数之和 中等class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); vector <vector<int>> res; for(int i = 0; i + 3 < nums.size(); ++i)原创 2020-07-17 15:06:51 · 153 阅读 · 0 评论 -
LeetCode高频面试题记录(六)
剑指 Offer 56 - I. 数组中数字出现的次数 中等class Solution {public: vector<int> singleNumbers(vector<int>& nums) { if (nums.empty()) return {}; int res = 0; for (int num:nums) res ^= num; int temp = 1; while原创 2020-07-16 16:21:52 · 149 阅读 · 0 评论 -
LeetCode高频面试题记录(五)
字典排序class Solution {public: vector<int> lexicalOrder(int n) { vector<int> res(n); int cur = 1; for(int i = 0; i < n; i++){ res[i] = cur; if(cur * 10 <= n){ cur *= 10;原创 2020-07-13 17:33:04 · 110 阅读 · 0 评论 -
LeetCode高频面试题记录(四)
戳气球 困难原理参考这篇文章:https://leetcode-cn.com/problems/burst-balloons/solution/c-dong-tai-gui-hua-qu-jian-dp-mo-ban-ti-by-wilson7/class Solution {public: int maxCoins(vector<int>& nums) { nums.insert(nums.begin(),1); nums.push_back(1);原创 2020-07-10 15:36:10 · 271 阅读 · 0 评论 -
LeetCode高频面试题记录(三)
字符串相加 简单这道题简单,思路也简单,但要写出简洁的代码还是不容易,记住下面模板class Solution {public: string addStrings(string num1, string num2) { int ln1 = num1.length() - 1; int ln2 = num2.length() - 1; int carry = 0; //定义一个空字符串,一边后面插入数字字符 str原创 2020-07-07 08:46:31 · 177 阅读 · 0 评论 -
数据库练习
从不订购的客户 简单select a.Name as 'Customers'from Customers as a left join Orders as b on a.Id=b.CustomerIdwhere b.CustomerId is null;原创 2020-07-05 17:12:21 · 154 阅读 · 0 评论 -
笔试题
2020/7/4字节第三批笔试第一题:找到最小未用的正整数给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5, 3, 2, 3}中未出现的最小正整数是1;数组{1, 2, 3}中未出现的最小正整数是4。算法:用一个辅助数组b[n+1]记录a[n]中元素的是否出现,初始全部为0。例如如果a[0]=1,则b[1]=1,a[3]=2,则b[2]=1;如果a[i]>n则不记录,因为如果1-n中元素没有全部出现则缺少的元素一定在1-n原创 2020-07-04 14:01:40 · 660 阅读 · 0 评论 -
面试题——各种功能函数实现(一)
实现自己的memcpyvoid *my_memcpy(void *dest, void *src, int num){ assert(dest != NULL && src != NULL); char *pdest = dest; char *psrc = src; while(num--){ *pdest = *psrc; *pdest ++; *psrc++; } return dest;}原创 2020-07-03 17:29:37 · 301 阅读 · 0 评论 -
LeetCode高频面试题记录(二)
二叉搜索树中第K小的元素 中等递归提前终止与记录所需数据的典型题class Solution { int i = 0; int res = 0;public: int kthSmallest(TreeNode* root, int k) { if (root == nullptr) return 0; int l = kthSmallest(root->left, k); if (++i == k) {res = root-原创 2020-07-03 15:59:18 · 295 阅读 · 0 评论 -
LeetCode高频面试题记录(一)
LeetCode高频面试题记录K 个一组翻转链表 困难class Solution {public: ListNode* reverseKGroup(ListNode* head, int k) { if (head == NULL) return NULL; ListNode *a = head; ListNode *b = head; for (int i = 0; i < k; i++) {//判断是否满足一组k原创 2020-07-02 09:22:36 · 314 阅读 · 0 评论