C++算法
lightyoung
这个作者很懒,什么都没留下…
展开
-
动态规划与贪心算法的程序举例分析
以下面这个题为例: 动态规划:暴力穷举所有的可能 贪心算法:在每一个子问题中选择最优解 #include <iostream> #include <vector> #include <algorithm> using namespace std; class Solution { private: vector<int> memo; public: int jump(vector<int>& nums) { int原创 2020-09-07 20:09:53 · 363 阅读 · 0 评论 -
总结一下erase函数
erase :从指定容器删除指定位置的元素或某段范围内的元素 如下: iterator erase(iterator_Where); iterator erase(iterator_First,iterator_Last); 1.对于关联容器,如map,set(以及multi类型)等,erase当前的迭代器iterator,仅仅会使当前的iterator失效,并不影响以后的内容(不会自动指向下一个节点的迭代器),所以只要在进行删除前,预先保留下一个当前迭代器的递增值即可。这是因为关联...原创 2020-09-06 17:20:11 · 1463 阅读 · 0 评论 -
素数的高效算法---- Sieve of Eratosthenes
class Solution { public: int countPrimes(int n) { vector<bool> isprime(n,true); int count=0; for(int i = 2;i*i < n; ++i){ if(isprime[i]){ for(int j = i*i;j < n;j += i){//使用j += i实现了i的倍数的排除 .原创 2020-09-03 09:09:43 · 144 阅读 · 0 评论 -
三种继承方式public,private,protected 的程序讲解
三种访问权限 public: 公有成员,是类对外提供的可访问接口,在类内和类外都可以访问; private: 私有成员,仅在类内可以被访问,对类外隐藏; protected: 保护成员,同样对类外隐藏,但是在派生类中可以被访问。 #include <iostream> using namespace std; class A { public: A() { } public: int data1; protected: int data2; private: int原创 2020-09-02 10:59:42 · 506 阅读 · 0 评论 -
多线程循环打印ABC模板
/* 循环打印ABC */ #include <iostream> #include <mutex> #include <condition_variable> #include <thread> using namespace std; mutex mu; condition_variable cv; int ready = 0; void fun1() { unique_lock<mutex> ul(mu); int cnt = .原创 2020-09-02 09:21:41 · 143 阅读 · 0 评论 -
并查集(Union-Find)模板
并查集模板,题目来自力扣547.朋友圈 class Solution { private: //并查集模板 vector<int> pre; int Find(int a) { int r = a; if (pre[r] == r) return r; return Find(pre[r]); } void Union(int a, int b) { int pa = Fin原创 2020-08-13 12:30:59 · 154 阅读 · 0 评论 -
经典动态规划:0-1 背包问题
背包问题: class solution { public: //今天就来说一下背包问题吧,就讨论最常说的 0-1 背包问题,简单描述一下吧: //给你一个可装载重量为W的背包和N个物品,每个物品有重量和价值两个属性。 //其中第i个物品的重量为wt[i],价值为val[i],现在让你用这个背包装物品,最多能装的价值是多少? //举个简单的例子,输入如下: /*N = 3, W = 4 wt = [2, 1, 3] val = [4, 2, 3]*/ int knapsack(int原创 2020-08-12 19:29:50 · 401 阅读 · 0 评论 -
动态规划之打家劫舍
力扣打家劫舍问题系列 213题 class Solution { public: int rob(vector<int>& nums) { int n = nums.size(); if(n == 1) return nums[0]; return max(robRange(nums,0,n-2),robRange(nums,1,n-1)); } int robRange(vector<int&g原创 2020-08-12 15:54:49 · 163 阅读 · 0 评论 -
力扣股票买卖问题汇总
力扣股票买卖问题原创 2020-08-12 12:57:10 · 389 阅读 · 0 评论 -
C++滑动窗口模板
滑动窗口模板: 题目是力扣76题 class Solution { public: string minWindow(string s, string t) { unordered_map<char,int> window,need; for(auto c : t) need[c]++; int left = 0,right = 0; int valid = 0; int start = 0,len = IN原创 2020-08-12 10:30:18 · 868 阅读 · 0 评论