leetcode 刷题 与 算法学习
文章平均质量分 83
数据结构与算法学习笔记,leetcode 刷题经验
陈同学别睡啦
这个作者很懒,什么都没留下…
展开
-
回溯与深度优先搜索 相关的高频面试算法题
回溯与深度优先搜索 全排列字符串全排列Leetcode : 给定一个 没有重复 数字的序列,返回其所有可能的全排列。class Solution {public: vector<vector<int>> ans; vector<vector<int>> permute(vector<int>& nums) { int n = nums.size(); vector<bool>原创 2020-11-28 15:12:41 · 214 阅读 · 0 评论 -
链表高频面试算法题
链表高频题链表排序链表反转 --- K 个一组翻转链表以下是链表结构体:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x原创 2020-11-20 08:52:36 · 148 阅读 · 0 评论 -
二叉树高频面试算法题
二叉树高频题迭代(非递归)方法做二叉树的三种遍历二叉树根节点到叶子节点的所有路径和迭代(非递归)方法做二叉树的三种遍历二叉树根节点到叶子节点的所有路径和牛客网题目 :/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: int sumNumbers(TreeNode* root) {原创 2020-11-20 08:46:05 · 353 阅读 · 0 评论 -
算法编程题精典总结收集
算法编程题精典总结实现计算器实现计算器计算器实现总结原创 2020-11-19 22:57:31 · 140 阅读 · 0 评论 -
算法编程题面试高频
算法编程题string 相加 & 链表相加两数之和,三数之和... N个数之和LRU缓存机制string 相加 & 链表相加 // 计算 "19" + "2" 得到 "21" string addStrings(string num1, string num2) { int n1 = num1.size()-1, n2 = num2.size()-1; string ans; int carry = 0; //进位原创 2020-11-19 22:45:56 · 657 阅读 · 0 评论 -
七种常见的排序算法C++实现
冒泡排序、选择排序、直接插入排序、希尔排序、 归并排序、快速排序、堆排序#include<string>#include<vector>#include<iostream>using namespace std;vector<int> maopaos(vector<int> &nums); /// 冒泡排序vector<int> selects(vector<int> &nums); ///原创 2020-11-07 20:18:41 · 261 阅读 · 0 评论 -
二维矩阵的深度优先搜索
Leetcode 例题:岛屿数量 https://leetcode-cn.com/problems/number-of-islands/单词搜索 https://leetcode-cn.com/problems/word-search/原创 2020-11-01 13:37:36 · 255 阅读 · 0 评论 -
Leetcode 刷题易错点 & 小技巧
32位有符号整数的取值范围是 [-2e31 , 2e31 -1 ];C++ 中的表示变量名为 [ INT_MIN, INT_MAX ]。long a = x;if ((int)a == a) //则表示a 在 [ INT_MIN, INT_MAX ]范围之内else // 超出32位有符号整数的取值范围原创 2020-10-31 15:47:49 · 129 阅读 · 0 评论 -
字符串题目常用函数
int isalnum(int c); 检查所传的字符是否是字母和数字。C 标准库 - <ctype.h>如果 c 是一个数字或一个字母,则该函数返回非零值,否则返回 0。tolower / toupper 将字母 转成 小写 / 大写。反转字符串 str,也适用于 vector, deque 。 reverse(str.begin(), str.end()); //或者 string s2(str.rbegin(), str.rend());取子字符串, string .原创 2020-10-31 08:23:25 · 84 阅读 · 0 评论 -
最小生成树(笔记 与 leetcode题目)
最小生成树基本概念leetcode题目题目Kruskal 算法Prim 算法基本概念生成树:一个连通图的生成树是含有这个连通图全部顶点的一个极小连通子图。如果连通图 G 的顶点个数为 n ,那么G的生成树的边数 必然为 n-1。无向图的生成树添加一条边,必然形成环。自由树:不带简单回路的无向图。简单回路:除了第一个顶点和最后一个顶点之外,其余顶点不重复的回路。回路/环:第一个顶点和最后一个顶点相同的路径。网络 :带权的连通图。有向树:如果一个有向图,只有一个顶点的入度为原创 2020-08-23 16:42:04 · 1530 阅读 · 0 评论 -
leetcode: 并查集(一维问题,二维问题,并查集通用代码)
并查集示例题目1,一维示例题目2,二维并查集核心代码示例题目1,一维题目解法class Solution {private: vector<int> parent; // 实现森林的父指针表示法 vector<int> nums; // 记录每个名字的频数 unordered_map<string, int> name2id; // name, id vector<string> name;原创 2020-08-23 14:21:15 · 623 阅读 · 1 评论 -
Leetcode刷题:拓扑排序(注释详细)
拓扑排序简介:以上截图来自 leetcode。拓扑排序可用于判断有向图中是否有环。题目:(1)深度优先搜索,遍历节点,每次把深度最大且未访问的节点 push_front 到 双端队列中。class Solution {private: vector<vector<int>> graph; vector<int> visit; // visit[i]:值为0表示改节点未访问,1表示正在深度优先遍历此节点,2表示已经深度优先遍历完此节点.原创 2020-08-16 17:22:10 · 386 阅读 · 0 评论 -
<原创> Leetcode:有向图中的最短路径解法(注释详细)
题目:朴素的Dijksta算法(On^2)适合稠密图。class Solution {public: int networkDelayTime(vector<vector<int>>& times, int N, int K) { if(N==1) return 0; int inf = 10000; vector<vector<int>> g(N+1, vector<int>原创 2020-08-11 22:11:35 · 1439 阅读 · 1 评论