
LeetCode
文章平均质量分 56
如风的少年-
这个作者很懒,什么都没留下…
展开
-
挑战程序设计 第三章笔记
单调性:假设最大间隔为d,d越大在n个牛舍里面可以放置的牛的数量越少,反之可以放置的牛的数量越多。:n个房子,m头牛,房子有一个横坐标,问将m头牛塞进房子,每两头牛之间的最大间隔是多少。单调性,对于单位重量的价值x而言,x越大满足的物品个数越少,反之满足的物品数量越少。N条绳子,分成K段,每条绳子的长度是Li,每条绳子最长的长度是多少,保留两位小数。单调性:绳子越长,可以分成的段数越少,反之可以分成的段数越多。,对物品的单位重量的价值进行排序,从高到低选取k个。,从中选出k个物品使单位重量的价值最大。原创 2023-02-12 19:06:54 · 80 阅读 · 0 评论 -
数组的最少交换次数
排好序之后的数组应该是n个自环,数组交换的次数=元素的个数n - 未排序数组中环的个数k。将环变成自环需要的交换次数就是:cycle_size-1。排序之前的数组: 4 3 2 1。排好序之后的数组:1 2 3 4。原创 2022-11-20 10:25:24 · 912 阅读 · 0 评论 -
挑战程序设计竞赛第一章 笔记
将数据排好序之后,利用两个指针i,j指向三角形的两条边,此时由于数据已经有序,那么只需要找到原创 2022-10-03 21:47:42 · 156 阅读 · 0 评论 -
大整数运算(加减乘除)
利用字符串来模拟大整数的加减乘除原创 2022-05-11 21:36:22 · 940 阅读 · 0 评论 -
4. 寻找两个正序数组的中位数(笔记)
左边元素SIZEleft个数是确定的,是(m+n+1) / 2个元素,所以只需要在一个数组中确定分隔线的位置,通过(m+n+1)/2,就可以计算出另外一个数组中分割线的位置对于第一个数组而言,分隔线右边的数6<第二个数组中分隔线右边的数8这是由于第一个分割线右边的数太小导致的,所以让第一个分割线右移当两个数组的长度不相等时,可能会出现两种极端的情况,第一个数组中的元素全部在分隔线的左边或者全部在分隔线的右边为了方便,在这里将i、j当做转载 2022-04-13 10:32:19 · 170 阅读 · 0 评论 -
图的拓扑排序
一、知识点二、例题1、AcWing 848. 有向图的拓扑序列 #include <iostream>#include <vector>#include <queue>using namespace std;const int N = 1e5+10;int n, m, indegree[N] = {0}; //indegree[i]表示顶点i的入度vector<int> Adj[N]; //使用邻接表来存储有向图vector<原创 2022-04-07 16:45:01 · 268 阅读 · 0 评论 -
算法题:回溯
搜索和回溯(来源于Leetcode书籍)1、46全排列class Solution {private: int n; unordered_map<int, bool> hashTable; vector<int> nums, temp; vector<vector<int>> res;public: vector<vector<int>> permute(vector<int&原创 2022-04-06 22:37:34 · 72 阅读 · 0 评论 -
无向图中连通分量的个数
1、DFS每调用一次DFS(u),就能遍历u所在的连通分量class Solution {private: static const int N = 2010; int n, G[N][N]; bool visited[N] = {false};public: int countComponents(int n, vector<vector<int>>& edges) { this->n = n;原创 2022-04-05 19:56:16 · 1775 阅读 · 0 评论 -
深度优先搜索DFS
这里写自定义目录标题**深度优先搜索的思想:一条路走到底,不撞南墙不回头**![在这里插入图片描述](https://img-blog.csdnimg.cn/795928ef488d4e0c8c92f7a244a950a8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aaC6aOO55qE5bCR5bm0LQ==,size_18,color_FFFFFF,t_70,g_se,x_161、树的深原创 2022-04-05 19:38:04 · 455 阅读 · 0 评论 -
N皇后三种解法
N皇后1、DFSclass Solution {private: int n; static const int N = 20; int row[N] = {0}, col[N] = {0}, dg[2*N] = {0}, udg[2*N] = {0}; int mat[N][N]; vector<vector<string>> res;public: vector<vector<string>> s原创 2022-04-04 19:53:52 · 458 阅读 · 0 评论 -
Leetcode 743网络延迟时间
743网络延迟时间不难发现,实际上求网络的延迟时间就是求节点k到其他各个节点的最短路径,在最短路径中找到一个最大值,就可以得到网络的延迟时间。求一个顶点到其他顶点的最短路径,常用的一种算法的Dijkstra算法算法的主要思想如下:下面通过一个具体的例子来看Dijsktra算法的实际过程:二、朴素版Dijkstra算法1、使用邻接矩阵来存储图class Solution {private: static const int N = 110, INF = 0原创 2022-03-31 18:54:48 · 1361 阅读 · 0 评论 -
Leetcode两数之和、三数之和、四数之和
Leetcode 两数之和、三数之和、四数之和原创 2022-03-26 15:57:32 · 665 阅读 · 0 评论