![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
数据结构
可峰科技
1-不要试图去证明自己比别人能力强,
是因为不自信的人才去证明自己的能力,
大家要记住,
就是你在团队不要找同样的人,
团队应该找不同样的人,
就是你把自己的能力放下,
你是要有一种新的能力 把大家团结起来,
赋能别人的能力,
唯一的办法,
这帮聪明的人没有办法一起工作,
但是我在 就可以让他们一起工作,
这是一个强大的Leadership能力。
2-读书读的好的人,很少会想到去创业,而读书读的差的人,没人要他,他容易去创业,
所以不管你会读书不会读书,你有资源没有资源,机会都有,天生我材必有用,
你今天去想清楚,这世界成功的不是一条路,有很多的路
3-学些经济知识
展开
-
数据结构之贪心算法
以下内容为作者高畅所有2.1 算法解释顾名思义,贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。举一个最简单的例子:小明和小王喜欢吃苹果,小明可以吃五个,小王可以吃三个。已知苹果园里有吃不完的苹果,求小明和小王一共最多吃多少个苹果。在这个例子中,我们可以选用的贪心策略为,每个人吃自己能吃的最多数量的苹果,这在每个人身上都是局部最优的。又因为全局结果是局部结果的简单求和,且局部结果互不相干,因此局部最优的策略也同样是全局最优的策略。2.2 分配原创 2021-08-23 22:31:22 · 175 阅读 · 0 评论 -
STL中常用的数据结构
1- Sequence Containers:维持顺序的容器。2-类型名称随机读取排序数组插入任意值获得最大值删除最大值备注vector动态数组O(1)因为在尾部增删的复杂度是 O(1),我们也可以把它当作 stack 来用list双向链表可以当作 stack 和 queue 来使用,链表不支持快速随机读取,因此我们很少用到这个数据结构。一个例外是经典的 LRU 问题,我们需要利用链表的特性来解决deque双端队列O(1)又支原创 2021-08-19 21:48:01 · 904 阅读 · 0 评论 -
广度优先搜索之2个岛屿之间的最短距离
感觉还是深度优先搜索啊,这里使用队列实现注意事项,循环后的变量不要重复遍历。#include <iostream>#include <algorithm>#include <vector>#include <stack>#include <deque>using namespace std;vector<int> direction{-1, 0, 1, 0, -1};void dfs(std::vector<原创 2021-06-07 22:33:59 · 545 阅读 · 0 评论 -
回溯法之排列组合
实例数据 {1,2,3}实现方式,巧妙的使用swap交换vector中2个数字的位置,然后在递归中循环更新每个位置的数字,就可以实现全排列代码如下void backTracing(std::vector<int> &data, int level, std::vector<std::vector<int>> all_arrray){ if (level == data.size() - 1) { all_arrray.pus原创 2021-06-07 10:51:22 · 74 阅读 · 0 评论 -
最大岛屿之深度优先搜索(dfs)
解题思路:使用栈压入弹出,或者使用递归实现技巧点:自定义搜索方向,使用vector direction{-1, 0, 1, 0, -1};数据实例 std::vector<std::vector<int>> grid = {{1, 0, 0, 1, 0, 1, 0, 0}, {1, 0, 0, 1, 0, 1, 1, 1},原创 2021-06-05 19:03:58 · 114 阅读 · 0 评论 -
STL基本概念
1-各种STL容器的使用场景2-C++中STL用法超详细总结原创 2021-02-20 15:01:04 · 107 阅读 · 0 评论 -
排序算法
个人总结,常见的排序算法有1-快速排序2-归并排序3-插入排序4-冒泡排序5-选择排序感觉归并排序利用递归来实现还有些特色,其他感觉就是冒泡的变种,实际使用时直接调用标准库std的算法即可。下面是归并排序的自己画的原理图...原创 2021-01-24 12:34:17 · 62 阅读 · 0 评论 -
旋转数组查找数字
排好序并旋转的数组,可以利用排好序的规律使用二分法进行查找原创 2021-01-09 15:13:41 · 148 阅读 · 0 评论 -
自己实现C++里的lower_bound和upper_bound函数
int lower_bound(vector<int> &nums, int target) {int l = 0, r = nums.size(), mid;while (l < r) {mid = (l + r) / 2;if (nums[mid] >= target) {r = mid;} else {l = mid + 1;}}return l;}int upper_bound(vector<int> &nums, int原创 2021-01-07 21:18:40 · 638 阅读 · 0 评论 -
龟兔赛跑(快慢指针)打卡
不说了,巴拉巴拉见图原创 2020-12-30 22:21:16 · 102 阅读 · 0 评论 -
力扣127-单词接龙
参考文章https://leetcode-cn.com/problems/word-ladder/solution/cpp-yi-ge-si-lu-de-zhuan-bian-cong-1156msjia-su-da/双向BFS为什么比单项BFS快,这里我们把双向分为前向和后向,在最坏复杂度下,随着传递的推进,前向传递会越來越复杂,速度越来越慢,这时我们根据有用信息或者叫先验(有先验干嘛不用,这里指endword)来降低前向传递的复杂程度,所以可以缩短前向的匹配的时间,从而实现整体优化的效果。举个不一原创 2020-08-21 18:47:08 · 160 阅读 · 0 评论 -
力扣322-零钱兑换
参考网址https://leetcode-cn.com/problems/coin-change/solution/322-ling-qian-dui-huan-by-leetcode-solution/动态规划方程,一步一步展开,用递归的思路,还要锻炼。原创 2020-08-21 16:40:35 · 207 阅读 · 0 评论 -
力扣300-最长上升子序列
参考文章https://leetcode-cn.com/problems/longest-increasing-subsequence/solution/dong-tai-gui-hua-er-fen-cha-zhao-tan-xin-suan-fa-p/原创 2020-08-21 15:58:44 · 101 阅读 · 0 评论 -
力扣279-完全平方数
参考文章https://leetcode-cn.com/problems/perfect-squares/solution/chao-zhi-bai-kao-zui-jiang-xiao-xue-sheng-du-neng-/小学生易懂版本。原创 2020-08-21 15:15:46 · 173 阅读 · 0 评论 -
力扣198-打家劫舍
参考网址https://leetcode-cn.com/problems/house-robber/solution/da-jia-jie-she-by-leetcode-solution/转移方程是关键,想到为什么会这样?原创 2020-08-21 14:33:29 · 158 阅读 · 0 评论 -
力扣128-最长连续序列
参考网址https://leetcode-cn.com/problems/longest-consecutive-sequence/solution/zui-chang-lian-xu-xu-lie-by-leetcode-solution/这题不难。原创 2020-08-21 14:19:14 · 195 阅读 · 0 评论 -
力扣395-至少有K个重复字符的最长子串
参考文章https://leetcode-cn.com/problems/longest-substring-with-at-least-k-repeating-characters/solution/duo-lu-fen-zhi-de-di-gui-fang-fa-zhi-xing-he-nei-c/发现慢慢对递归有个感觉,就相同功能的函数,重复调用。原创 2020-08-21 13:45:31 · 153 阅读 · 0 评论 -
力扣315-计算右侧小于当前元素的个数
参考文章https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/solution/shu-zhuang-shu-zu-de-xiang-xi-fen-xi-by-yangbingji/这个真是算法,不是吹!原创 2020-08-21 13:14:17 · 206 阅读 · 0 评论 -
力扣162-寻找峰值
参考文章https://leetcode-cn.com/problems/find-peak-element/solution/xun-zhao-feng-zhi-by-leetcode/原创 2020-08-21 10:16:03 · 144 阅读 · 0 评论 -
力扣324-摆动排序
参考文章https://leetcode-cn.com/problems/wiggle-sort-ii/solution/yi-bu-yi-bu-jiang-shi-jian-fu-za-du-cong-onlognjia/原创 2020-08-21 09:42:57 · 131 阅读 · 0 评论 -
力扣239-滑动窗口最大值
参考网址https://leetcode-cn.com/problems/sliding-window-maximum/solution/shuang-xiang-dui-lie-jie-jue-hua-dong-chuang-kou-z/使用一个双向队列deque,让该队列的头是队列中最大的元素,然后向后【滑】就可以了。原创 2020-08-20 17:43:40 · 190 阅读 · 0 评论 -
力扣380-常数时间插入、删除和获取随机元素
参考文章https://leetcode-cn.com/problems/insert-delete-getrandom-o1/solution/fen-xiang-yi-ge-you-xiu-de-suan-fa-hashsethe-shu-z/此题的正确解法是利用到了一个一维数组和一个 HashMap,其中数组用来保存数字,HashMap 用来建立每个数字和其在数组中的位置之间的映射。...原创 2020-08-20 15:44:48 · 143 阅读 · 0 评论 -
力扣454-四数相加
参考文章https://leetcode-cn.com/problems/4sum-ii/solution/454-si-shu-xiang-jia-iimapzai-ha-xi-fa-zhong-de-yi/A和B两个循环相加,放入哈希表中,key为A+B的值,value为频率,然后C和D两个循环相加,检测AB的哈希表中是否有C和D相加的元素的相反数。...原创 2020-08-20 15:32:49 · 146 阅读 · 0 评论 -
力扣171-Excel表列序号
参考文章https://leetcode-cn.com/problems/excel-sheet-column-number/solution/c-0ms-by-epecker/其实没有用到哈希表。原创 2020-08-20 15:12:38 · 154 阅读 · 0 评论 -
力扣341-扁平化嵌套列表迭代器
参考文章https://leetcode-cn.com/problems/flatten-nested-list-iterator/solution/c-zong-he-ge-lu-da-lao-de-da-an-by-fxxuuu/其实用vector解决这个问题更直观一些,用栈的话要反向压栈,因为这里要使用next和hasnext。首先解析字符串,然后压栈就可以了。...原创 2020-08-20 15:02:10 · 140 阅读 · 0 评论 -
力扣227-基本计算器
参考文章https://leetcode-cn.com/problems/basic-calculator-ii/solution/chai-jie-fu-za-wen-ti-shi-xian-yi-ge-wan-zheng-ji-/思路,加法直接入栈,减法乘以负数入栈,乘除法先计算结果再入栈,最后统一进行加法。原创 2020-08-20 14:35:33 · 459 阅读 · 0 评论 -
力扣150-逆波兰表达式求值
参考网址https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/solution/ni-bo-lan-biao-da-shi-qiu-zhi-zhan-shi-xian-by-mrw/就是使用stack栈,按照规律压进压出就可以了。原创 2020-08-20 14:17:05 · 168 阅读 · 0 评论 -
力扣347-前K个高频元素
参考网址https://leetcode-cn.com/problems/top-k-frequent-elements/solution/347-qian-kge-gao-pin-yuan-su-cjian-ji-dai-ma-you-x/首先哈希表统计频率,然后用最小堆保留频率前K个高频元素。原创 2020-08-20 13:56:42 · 182 阅读 · 0 评论 -
力扣378-有序矩阵中第K小的元素
参考网址https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/solution/you-xu-ju-zhen-zhong-di-kxiao-de-yuan-su-by-leetco/第二种方法使用最小堆来更新最小元素,然后依次堆出和堆进来找到第K个最小元素。...原创 2020-08-20 12:30:08 · 152 阅读 · 0 评论 -
力扣295-数据流的中位数
参考文章https://leetcode-cn.com/problems/find-median-from-data-stream/solution/shu-ju-liu-de-zhong-wei-shu-by-leetcode/一般思路:在push的时候进行排序。或者:用一个最大堆和最小堆来时刻更新堆顶的元素(即中位数)或者:使用AVL树,用2个指针时刻更新中位数的位置。...原创 2020-08-20 11:46:23 · 242 阅读 · 0 评论 -
力扣215-数组中的第K个最大元素
参考网址https://leetcode-cn.com/problems/kth-largest-element-in-an-array/solution/shu-zu-zhong-de-di-kge-zui-da-yuan-su-by-leetcode-/构建大根堆,这是一个知识点,如何进行堆排序 void maxHeapify(vector<int>& a, int i, int heapSize) { int l = i * 2 + 1, r = i *原创 2020-08-19 17:11:07 · 247 阅读 · 0 评论 -
力扣-155:最小栈
参考网址:https://leetcode-cn.com/problems/min-stack/solution/zui-xiao-zhan-by-leetcode-solution/栈和队列的合理解释栈相当于一个水瓶子,往里面放东西,只能被压到底部,所有只有等上面的所有的都出来了,他才能出来,这是先进后出。队列相当于一个隧道,火车往里面开,不能回头,头先进去当然也先出来,这叫先进先出。参考:https://zhidao.baidu.com/question/877756137810686092.原创 2020-08-19 15:52:58 · 128 阅读 · 0 评论 -
力扣-328:奇偶链表
参考网址:https://leetcode-cn.com/problems/odd-even-linked-list/solution/shuang-zhi-zhen-qiu-jie-by-tangzixia/临时变量tmp的作用是关键,它是偶数链表的头节点,它是奇数链表和偶数链表的结合点。循环操作:首先使用临时变量tmp保存偶数链表,然后奇数节点指向奇数节点,偶数节点指向偶数节点,最后奇数链表与偶数链表在tmp初合并,同时更新奇数点位置,偶数点位置。---->再开始下一次循环。...原创 2020-08-19 15:34:46 · 130 阅读 · 0 评论 -
力扣237-删除链表中的节点
参考网址https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/cjian-ji-dai-ma-2xing-by-orangeman/与删除该节点不同,其实是删除了该节点的下一个节点,只是把下一个节点的值复制给要删除的节点。即A->B->C->D,要删除B,结果是把C复制给B,然后删除了C,变成A->B©->D。就变成了A->C->D....原创 2020-08-19 13:26:42 · 157 阅读 · 0 评论 -
力扣234-回文链表
参考网址:https://leetcode-cn.com/problems/palindrome-linked-list/solution/hui-wen-lian-biao-1zhan-2kuai-man-zhi-zhen-fan-zhu/使用快慢指针找到链表中间的位置,同时翻转前一部分链表,最后将翻转的链表与后半部分的链表进行比较即可。...原创 2020-08-19 13:09:15 · 177 阅读 · 0 评论 -
力扣206-反转链表
参考文章https://leetcode-cn.com/problems/reverse-linked-list/solution/206-fan-zhuan-lian-biao-shuang-zhi-zhen-fa-di-gui-/就是翻转指针的方向。要定义一个临时变量保存当前节点,一个反转后的节点,所以还可以写成这样class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* temp;原创 2020-08-19 12:52:23 · 246 阅读 · 0 评论 -
力扣160-相交链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {原创 2020-08-13 20:26:27 · 159 阅读 · 0 评论 -
力扣148-排序链表
class Solution {public: ListNode* sortList(ListNode* head) { ListNode dummyHead(0); dummyHead.next = head; auto p = head; int length = 0; while (p) { ++length; p = p->next; }原创 2020-08-13 20:03:05 · 120 阅读 · 0 评论 -
力扣1300题
参考文章https://leetcode-cn.com/problems/decode-string/solution/zi-fu-chuan-jie-ma-by-leetcode-solution/原创 2020-05-28 14:34:35 · 307 阅读 · 0 评论 -
和可被 K 整除的子数组
参考文章:https://leetcode-cn.com/problems/subarray-sums-divisible-by-k/solution/he-ke-bei-k-zheng-chu-de-zi-shu-zu-by-leetcode-sol/原创 2020-05-27 09:54:15 · 245 阅读 · 0 评论