![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
catalpeak
这个作者很懒,什么都没留下…
展开
-
计数算法 对于整数的处理简直是牛逼
计数算法需要三个辅助数组A数组:存储未排序数据B数组:对A数组计数(初始化为0),且最好从1开始C数组:存储排序后的数据1.从头到尾遍历A数组,B[A[i]]++2.B[I] = B[I] + B[I - 1]3.从后到前便利 C[B[A[i]]–] = A[i]4.因为要防止有相等的数存在,故C数组每加一个数,就减一,这样如果有一样的就放到了前一个5.而且第三步是从后向前遍历数组,所以排序是有稳定性的...原创 2020-10-21 12:27:00 · 118 阅读 · 0 评论 -
C++ 判断子串A是否在字符串B中 极其简单的方法
非常简单,代码如下:#include <iostream>#include <string>using namespace std;bool AisSubStringOfB (string a, string b) { if (a.size () > b.size ()) return false; else { for...原创 2020-04-07 20:40:00 · 2084 阅读 · 0 评论 -
判断一个数的二进制数有多少位1
其实这篇文章可以挖的很深,从二进制的本质出发有很多可以考虑的点。但是我并不能理解这么深55555从题目中的问题出发,我们将十进制转换为二进制的时候使用的是什么方法呢?将该数跟2取余,再除于2,反复操作,所有的余数加起来就是目标二进制数。那么统计其中位是1的位只需要在模2的时候记录累加。在将原来的数除以2.代码如下:#include <iostream>using na...原创 2020-04-01 15:20:38 · 5584 阅读 · 1 评论 -
leetcode 1035 不相交的线
我们在两条独立的水平线上按给定的顺序写下 A 和 B 中的整数。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。以这种方法绘制线条,并返回我们可以绘制的最大连线数。示例 1:输入:A = [1,4,2], B = [1,2,4]输出:2解释:我们可以画出两条不交叉的线,...原创 2020-03-16 11:59:11 · 481 阅读 · 0 评论 -
leetcode 419 甲板上的战舰
很有趣的一道题,话说甲板上为什么还有战舰啊,真就船娘呗代码如下:int countBattleships(vector<vector<char> >& board){ int ret = 0; // 只有左上角的可以是 for (int i = 0; i < board.size (); i++) { for...原创 2020-03-16 10:03:50 · 170 阅读 · 0 评论 -
leetcode 1249. 移除无效的括号
给你一个由 '('、')' 和小写字母组成的字符串 s。你需要从字符串中删除最少数目的 '(' 或者 ')' (可以删除任意位置的括号),使得剩下的「括号字符串」有效。请返回任意一个合法字符串。有效「括号字符串」应当符合以下 任意一条 要求: 空字符串或只包含小写字母的字符串 可以被写作 AB(A 连接 B)的字符串,其中 A 和 B 都是有效「括号字符串」 ...原创 2020-03-15 03:05:15 · 154 阅读 · 0 评论 -
用两个栈实现队列
栈是后进先出的方式,队列是先进先出(FIFO)方式。所以将一个栈设置为弹出栈,另一个设置插入栈。编码前先设定s1为插入栈,s2为弹出栈比较简单,代码如下#include <iostream>#include <stack>using namespace std;template <class T>class MQueue {priva...原创 2020-03-10 00:51:57 · 81 阅读 · 0 评论 -
两个队列实现栈结构思想和代码
栈是先进后出的结构、队列是先进先出(FIFO)的结构。或者利用先进先出的特性,在某一各队列中存放全部元素,在出栈的时候把前面的元素都放在另一个空的队列里。剩下最后一个是需要出栈的元素,只剩下一个在另一个队列里。所以每次出栈只需要把前n-1个元素,从p1移动到p2,再pop p2最后一个元素即可。代码实现如下:#include <iostream>#inclu...原创 2020-03-10 00:16:48 · 121 阅读 · 0 评论 -
使用LSTM(长短期记忆算法)预测股票走势
话不多说直接上代码数据说明:本来做的美股预测,但是没有本地特色,于是乎改用中国,所以在接口上有所改变,故使用的时候,改变接口就可以完美配合所有股市数据。# Importimport tensorflow as tfimport numpy as npimport pandas as pdfrom sklearn.preprocessing import MinMaxScale...原创 2020-02-27 22:53:21 · 4273 阅读 · 6 评论 -
随机生成n个在a~b之间的数
#include <iostream>#include <stdio.h>#include <time.h>#include <stdlib.h>using namespace std;void func (int a, int b, int n) { srand (time(0)); for (int i = a; ...原创 2020-02-23 17:40:28 · 460 阅读 · 0 评论 -
Java : 错误:找不到或无法加载主类
这是个十分智障的问题。有一种解决思路是这样,就运行Java的时候逻辑上是运行主类,所以在javac XXX.java后不能java XXX.class,这样就会出现如上问题。而是应该运行Java “类名”.java。这样就会直接运行写好的类。...原创 2019-09-08 15:24:53 · 570 阅读 · 0 评论 -
IoTA区块链 链接 功能实现
IoTA区块链是最新一代(2019)的区块链,一个区块由两个前驱区块验证,由网络节点生成交易,交易会生成区块,再将这些区块统一成链接验证加入原区块链。本文实现了 将新区块加入原有区块链的功能。详见代码。/* Catalpeak 版权所在,盗版必究*/#ifndef MAIN_H#define MAIN_H#include <iostream>#inclu...原创 2019-07-05 12:58:29 · 766 阅读 · 0 评论 -
计算机操作系统-生产者消费者问题C&C++实现
今儿个看了看consumer-producer问题感觉应该比较简单,就打算用C&C++实现一下,好吧果然很简单。 唯一困扰我比较久的问题就是,C和C++的隐藏机制有一部分不是很一样,导致两者代码不能很好的融合。问题如下: 线程创建时由于C会隐式的把通用指针转换成其他类型指针,但是在C11标准中C++并不会这么做,SO我在这上面浪费了好久的时间FUCK!!!体现出来就是C+...原创 2018-12-14 17:33:08 · 4204 阅读 · 0 评论 -
遗传算法实现
听闻遗传算法NB,我就小试了一下,一开始没有设置遗传概率,让每一次迭代都发生变异,效果很不好。后来设置了有概率的变异,发现妙呀。直接上代码啦。头文件:InheritanceAlgorithm.h#include <iostream>#include <cstdlib>#include <cstdio>#include <cstrin...原创 2018-11-08 20:22:20 · 185 阅读 · 0 评论 -
编辑距离DP问题
#include<stdio.h>#include<string.h>#define MAX 100int solve(char string1[], char string2[], int a, int b);int min(int a, int b, int c);int diff(char a, char b);int main(){ int a, b = 0;...原创 2018-06-10 14:49:06 · 233 阅读 · 0 评论 -
最长子序列DP问题——数组行遍历算法
#include<stdio.h>#include<string.h>#define MAX 100int solve(char string1[MAX], char string2[MAX], int a, int b);int main(){ int a,b; char string1[MAX], string2[MAX]; scanf("%s", s...原创 2018-06-10 13:55:31 · 133 阅读 · 0 评论 -
地图着色问题-----M着色问题
该问题可以用回溯法解决a.先构建解空间 是一个N元组b.再确定解空间的组织结构----是一个M叉树c.最后搜索解空间 { 约束条件:该点颜色与其他所有相邻点颜色均不相同 限界条件:无 }...原创 2018-06-21 22:28:22 · 1449 阅读 · 0 评论 -
日程安排问题
给出所有活动的开始时间和结束时间,选出最大活动子集有三种解决思路a.具有最早的开始时间 且与已安排会议相容b.具有最短持续时间 且与已安排会议相容c.具有最早结束时间 且与已安排会议相容...原创 2018-06-21 22:20:31 · 440 阅读 · 0 评论 -
全排列/全组合问题的两种解决方法
Mark两种计算 全排序问题(全组合问题)的组合和非组合解决方法1.有排序的全排列(全组合)问题这个用递归的方式解决a.取数组n中的最大值b.再在剩下的n-1个中取m-1个c.直到取到从n-m+1个数中取出1个为止d.再取出数组中次大的,重复a步骤,直到取到的数的编号==m下面贴出C的实现#include<stdio.h>#define MAX 5int FLAG_N = 0;int ...原创 2018-06-20 22:37:09 · 1032 阅读 · 0 评论