![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法刷题
数学系硕士,准备21年的秋招,按类型刷题
子颠三号倒四
在读研,,计算数学机器学习算法,自然语言处理方向。
加油学,,提升数据结构算法功底,深化机器学习项目。
展开
-
LeetCode刷题 --哈希表 与 字符串【2020第一版】
1.哈西表1.1 哈希表概述\quad哈西表(hash table,也叫散列表),是根据关键字值(key)直接进行访问的数据结构,它通过把关键字映射到表中一个位置(数组下标)来直接访问,以加快查找关键字值的速度。这个映射函数叫做哈西(散列)函数,存放记录的数组叫做哈西(散列)表。//哈西排序: 实践复杂度O(表长+n) n为元素个数int random[10] = {999,1,44,555,666,8,12,902,11,520}; //在0-1000中的随意取值int hash_map[100原创 2020-06-17 19:46:35 · 361 阅读 · 1 评论 -
leetcode---二分搜索和BST【2020第一版】
#诗经·秦风·蒹葭蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。蒹葭凄凄,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。蒹葭采采,白露未已。所谓伊人,在水之涘。溯洄从之,道阻且右。溯游从之,宛在水中沚。...原创 2020-06-13 08:38:16 · 203 阅读 · 0 评论 -
leetcode树(图)的广度优先和深度优先---2020第一版
#诗经·秦风·权舆於我乎,夏屋渠渠,今也每食无奈。于嗟乎,不承权舆。於我乎,梅食四簋,今也每食不饱。于嗟乎,不承权舆。0.树原创 2020-06-10 10:45:37 · 327 阅读 · 0 评论 -
LeetCode刷题---递归回溯分治【2020第一版】
0.摘要\qquad递归的原则:当前步骤处理当前的问题,递归处理后续问题;\qquad回溯:探索到某一步时,发现原先选择达不到目标,则后退一步重新选择,走不通就退回再走;\qquad分治:1.回溯法#include<vector>vector<vector<int>> subsets(vector<int>& nums){ vector<vector<int>> result; vector<int&原创 2020-06-06 14:40:56 · 217 阅读 · 0 评论 -
leetCode刷题---贪心算法【2020第一版】
0.贪心算法概述\qquad从问题的初始状态出发,设定某种规律,不断进行贪心选择取得当前最优,最终得到整个问题的(一个)最优解。1.分糖果Q:A:设定贪心规律:s[i]不能满足某个g[j],则不能满足g[j+1]及后续;g[j]如果能用s[i]满足,则不需要用s[i+1]及后续更大来满足,因此可以保留更大的来满足后续的g[j+1];【贪心】对g[j]从小到大满足,优先配给小的g[j].【贪心】#include<algorithm>int findContent(vector原创 2020-06-02 08:30:10 · 360 阅读 · 0 评论 -
LeetCode刷题--栈,队列,堆
例4,栈和队列综合#include<stack>#include<queue>bool check_is_valid_order(std::queue<int> &order){ std::stack<int> s; int n=order.size(); for(int i=1; i<=n; ++i) { s.push(i); while(!s.empty() && order.front()==s.原创 2020-05-26 21:44:30 · 394 阅读 · 0 评论 -
动态规划【2020第一版】
动态规划的基本思想将给定问题分解成不同部分(子问题),通过合并子问题的解来得到原问题的解。通过构建状态列表将子问题的解记忆化储存。再解决临近子问题时通过查表避免重复计算,从而降低时间复杂度。动态规划的三个步骤确定目标问题确定子问题及状态opt[n]子问题必须具有最优子结构,使得动态规划能够抵达全局最优解而不是如贪心算法一样只关注局部最优解。子问题必须具有无后效性,当前多个最优解的取得与...原创 2020-05-01 20:09:48 · 176 阅读 · 0 评论 -
LeetCode刷题----链表【2020第一版】
0.摘要链表应该是面试中被问得最频繁的数据结构。原因:①链表通过指针将若干个节点连接成链状结构,其"增删改查"操作易于实现。②链表需要对指针的操作,需要较好的编程功底。1. 8道经典链表题目1.1 链表逆序(eazy)Q: 已知链表头节点指针head,将链表逆序。(不可申请额外空间)A1:(非递归结构)思路: 从前到后改变next指针所指的方向ListNode *reverseList(ListNode* head){ ListNode* newhead = NULL; while原创 2020-05-16 11:21:23 · 248 阅读 · 0 评论