leetcode刷题总结
leetcode代表知识点和题目方法总结(C++)
UncleDrew_lsy
这个作者很懒,什么都没留下…
展开
-
堆排序(猿辅导提目)
刷题原创 2022-06-25 08:55:20 · 158 阅读 · 0 评论 -
c++count和find函数
count统计某个字符出现的次数;使用方法是count(begin,end,‘a’),其中begin指的是起始地址,end指的是结束地址,第三个参数指的是需要查找的字符。在unordered_set里面:count函数只会返回1或者0。 因为无重复元素。用法:此函数接受单个参数element 。表示容器中是否存在需要检查的元素。如果元素存在于容器中,则此函数返回1,否则返回0。unordered_set_name.count(element) find使用find,返回的是被查找元素的位置原创 2022-04-08 11:23:08 · 1723 阅读 · 0 评论 -
c++对unordered_map自定义sort
c++中的sort只可以对vector排序,因此如果对unordered_map自定义排序,需要放在vector中。以lc386为例:class Solution {public: static bool cmp(pair<string, int> &a, pair<string, int> &b){ return a.first < b.first; } vector<int> lexicalOrde原创 2022-04-18 15:43:28 · 1967 阅读 · 2 评论 -
数据结构中常见的操作效率
图片摘自:https://blog.csdn.net/xhyxxx/article/details/65937427?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164437813816780261971374%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164437813816780261971374&biz_id=0&.原创 2022-02-09 11:50:46 · 542 阅读 · 0 评论 -
对c++中的map结构进行排序
map是key有序的结构,自动实现key的顺序和去重;如果相对value排序,要自己定义pair结构。#include <map>#include <string>#include <iostream>using namespace std;// 自己编写的Compare,实现按照字符串长度进行排序struct CmpByKeyLength { bool operator()(const string& k1, const string&am原创 2022-02-08 21:35:17 · 807 阅读 · 0 评论 -
经典题目:滑动窗口的最大值+前 K 个高频元素
1、滑动窗口的最大值:经典算法:深度优先队列(deque)class myqueue{ public: deque<int> que; void pop(int value){ if(!que.empty() && value == que.front()){ //由于队列只维护单调递减的序列,因此在第一个元素之前可能还有元素不过被弹出了,导致目前元素数目小于窗口大小,因此只有当value == que.fro原创 2022-02-08 21:16:54 · 648 阅读 · 0 评论 -
二分法查找某数字在数组中出现次数
思路:找到上下边界然后相减;注意:用左边界找,左边界先找到开始,再找到结尾;class Solution {public: int GetNumberOfK(vector<int> data ,int k) { int rbound, lround = 0; int l = 0, r = data.size()-1; while(l<=r){ int mid = (l+原创 2022-02-08 15:29:45 · 361 阅读 · 0 评论 -
c++二分法查找
二分法:二分法应用条件:1)数组为有序数组。2)同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的。区间的定义:区间的定义不同代码就不同。1)定义target在[left, right]区间while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=。if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[mid原创 2021-10-25 08:45:58 · 1548 阅读 · 0 评论 -
二叉树知识点总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、二叉树分类及定义二、二叉树的存储方式三、二叉树的遍历1.递归法2.迭代法3.层序遍历总结一、二叉树分类及定义满二叉树定义:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树定义:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h -1 个节点原创 2021-11-11 14:53:30 · 481 阅读 · 0 评论 -
C++二叉树层序遍历
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、pandas是什么?二、使用步骤1.引入库2.读入数据总结提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示原创 2021-10-28 15:51:21 · 2599 阅读 · 0 评论 -
贪心算法总结
什么是贪心算法**局部最优推全局最优。**有时候就是常识推导,例如一堆钱拿固定张数,最后钱拿的最多,肯定先可钱面值大的拿。解题步骤:1)将问题分解为若干个子问题2)找出适合的贪心策略3)求解每一个子问题的最优解4)将局部最优解堆叠成全局最优解分不出这四步的时候就靠常识吧。1.发饼干455:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s原创 2021-11-24 10:01:12 · 626 阅读 · 0 评论 -
里扣刷题第一周(10.10-10.17)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档数组+链表+哈希表 题目总结。前言提示:这里可以添加本文要记录的大概内容:第一周主要学习了基础的数据结构知识,数组,哈希表和链表。提示:以下是本篇文章正文内容,下面案例可供参考一、数组定义:数组是存放在连续内存空间上的相同类型数据的集合。具体代表性题目记录:1)34题:用二分法解决。定义两个指针(left,right),分别指向数组的头和尾,然后移动。难点:区间的开和闭。分两种情况讨论:[left, right]和[l原创 2021-10-18 14:25:36 · 153 阅读 · 0 评论 -
数据结构----堆(heap)
前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、堆是什么? 堆是一种数据结构,就是每个节点根据某种规则排序, 从根节点往下都符合某种规律。堆是一个完全二叉树,树中每个节点的值都不小于(或不大于)其左右孩子的值。 如果父节点是大于等于左右子节点就是大顶堆,小于等于左右孩子就是小顶堆。大顶堆每次先弹出最大元素,小顶堆每次弹出最小元..原创 2021-10-22 10:36:29 · 146 阅读 · 0 评论 -
回溯算法总结
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport p原创 2021-11-21 11:09:01 · 1177 阅读 · 0 评论