自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 导弹拦截

Dilworth定理把一个数列划分成最少的最长不升子序列的数目就等于这个数列的最长上升子序列的长度第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度,计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。#include <vector>#include <algorithm>#include <iostream>using namespace std;int main() { vector<int

2020-11-14 02:14:00 116

原创 最长不上升子序列的长度

lower_bound(begin,end,num):二分查找第一个大于等于num的数字upper_bound(begin,end,num):二分查找第一个大于num的数字lower_bound(begin,end,num,greater< type>()):二分查找第一个小于等于num的数字upper_bound(begin,end,num,greater< type>()):二分查找第一个小于num的数字int s[N],n=1;s[0]=d[0];for(int i

2020-11-14 01:46:49 270 1

原创 单词接龙

已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast 和 astonish,如果接成一条龙则变为 beastonish,另外相邻的两部分不能存在包含关系,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数 n 表示单词数,以下 n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在。输出格式只需输出以此字母

2020-11-13 23:44:48 149

原创 进制转换--负进制

−15(十进制)相当于 110001(-2进制)30000=11011010101110000(base-2)-20000=1111011000100000(base-2)28800=19180(base-16)-25000=7FB8(base-16)短除法基的指数为正,求余可能为负数,需要处理负余数余数的绝对值小于除数的绝对值,余数减除数为正数#include<iostream>#include<vector>using namespace std;vecto

2020-11-13 22:56:31 583

原创 自定义命名空间

namespace myNamespace{}

2020-07-17 14:17:24 137

原创 double free

free多次free后指针设为null

2020-07-14 17:16:36 203

原创 runtime error

//scanf没有加&//解引用NULL

2020-07-14 17:07:13 149

原创 字符串输出乱码,Not UTF-8 encoded

字符数组末尾没有加'\0'

2020-07-14 16:51:33 2258

原创 非法内存读取

一定是重新解引用已经delete过的对象list& list::unique(void) { // list l(*this); // listPointer temp1 = l.head; listPointer temp1 = head; // int counter = 0; while (temp1 != NULL) { listPointer temp2 = head; int count = 0; while (temp2 != NULL)

2020-07-06 04:02:15 538

原创 内存泄漏

一定是哪里没有delete,一定可能是new后,因为输入不符合条件,而没有使用,却没有delete(insert,push…)最可能是,在一些应该具有删除功能的函数中没有完全delete(erase,pop,clear,~class)void list::erase(int position) { if (position < 0 || position >= _size) { return; } listPointer temp = head; int count

2020-07-06 03:58:18 85

原创 不排序实现unique函数

list& list::unique(void) { // list l(*this); // listPointer temp1 = l.head; listPointer temp1 = head; // int counter = 0; while (temp1 != NULL) { listPointer temp2 = head; int count = 0; while (temp2 != NULL) { // if (temp1-

2020-07-06 03:00:53 346

原创 内存爆掉

list& list::merge(const list& src1, const list& src2) { if (src1._size == 0) { *this = src2; return *this; } if (src2._size == 0) { *this = src1; return *this; } *this = src1; list s2 = src2;//拷贝 listPointer temp =

2020-07-06 02:36:43 154

原创 terminate called after throwing an instance of ‘std::length_error‘ what(): basic_string::_M_creat

下标太大了

2020-07-06 00:01:20 3043 2

原创 size_t

<cstddef>

2020-05-29 02:50:39 84

原创 力扣--寻找重复数

给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。i->nums[i]构成一条有向边,可知所有点出度均为1,0点的入度为0,0所在的连通分量一定有环(出边不能空悬,只能回指非0点)class Solution {publ

2020-05-26 02:28:41 251

原创 力扣--寻找两个正序数组的中位数

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。相当于找第(m+n)/2小的数,每次可以排除(m+n)/4个数#include <vector>#define Min(x, y) ((x) < (y) ? (x) : (y))class Solution { public: double findMe

2020-05-25 02:04:23 129

原创 搜索

心法找什么,目标哪里找,垂直搜索途径,同类型网站《慢慢买》《券妈妈》《搜狗微信》《搜狗知乎》《大数据导航》《虫部落快搜》《百度指数》怎么找,搜索指令———————————逻辑办读书沙龙了解他人解决方案“活动方 活动 活动地点”比较商品价格“历史比价”网络医生手机端可能做的比pc端好,找app“问医生”“挂号”————————————技巧口语转为关键词关键词 site:站点注意不要加http或www关键词 filetype:文件格式关键词 2020…2020关键词 -

2020-05-18 11:10:21 142

原创 字符串和数字转换

#include<string>#include<sstream>std::string NumToString(int num){ return to_string(num);}int StringToNum(std::string s){ stringstream a; a<<s; int num; a>>num; return num;}

2020-05-16 09:50:16 93

原创 力扣--正则表达式匹配

请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。递归#include<string.h>bool isMatch(char* s, char* ...

2020-04-22 04:20:16 189

原创 力扣--矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。(连续)深度搜索int row,colum,length;bool dfs(char **board,int i,int j,char *word,int l){ if(i...

2020-04-22 00:00:44 189

原创 力扣--礼物的最大价值

在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?动态规划int maxValue(int** grid, int gridSize, int* gridColSize){ int max[gr...

2020-04-21 23:03:54 170

原创 力扣--股票的最大利润

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?最初写法,差的前缀和的最大值int maxProfit(int* prices, int pricesSize){ if(pricesSize<2){ return 0; } int max,sum; max=sum=prices[1]-prices...

2020-04-21 22:43:35 222

原创 力扣--优美子数组

给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。最初写法//循环队列int queue[50000];int head;int tail1;int de(){ int t=queue[head++]; head%=50000; return...

2020-04-21 22:01:39 131

原创 二级指针

传入二级指针可避免空悬指针问题void DestroyDate(Date** p){ if(*p==NULL){ return ; } free(*p); *p=NULL;}

2020-04-10 11:13:28 113

原创 INT_

INT_MAX0x7fffffff32位7 0111f 1111INT_MININT_MAX+10x8000000032位8 10000 0000

2020-04-08 10:15:33 105

原创 Josephus

标答(队列,可以显示过程)public class Josephus { public static void main(String[] args) { int m = Integer.parseInt(args[0]); int n = Integer.parseInt(args[1]); // initialize the queu...

2020-03-31 13:41:45 149

原创 连续k个数之和最大

k为定值int findMax(int a[],int n,int k){ if(n<k||n<0||k<0){ error(0); } int sum=a[0]; for(int i=1;i<k;i++){ sum+=a[i]; } int max=sum; for(int i=k;i<n;i++){ sum=sum-a[i-k]+a[i...

2020-03-31 01:16:21 469

原创 素数

判断一个数是不是素数void isPrime(int num){ if(num<2){ return 0; } for(int i=2;i*i<=num;i++){ if(num%i==0){ return 0; } } return 1;}找1~n中的素数int is[N],count;//存储素数void Prime(int n){ for...

2020-03-30 11:21:21 62

原创 计算平方根--牛顿迭代法

double sqrt(double c){ if(c<0){ return -1; } double err=1e-15;//精度 double t=c; while(t-c/t>err*t||c/t-t>err*t){ t=(c/t+t)/2.0; } return t;}

2020-03-23 23:11:55 116

原创 动态连通性--union-find

#define N 100000typedef struct UF{ int id[N]; int count; }UF;UF uf;void inUF(int n){ for(int i=0;i<n;i++){ uf.id[i]=i; } uf.count=n;}int find(int p){ while(uf.id[p]!=p){ p=uf.id[p]...

2020-03-23 22:55:06 108

原创 memset

void memset (void*,int,size_tn);memset(ar,0,sizeof(ar));memset(ar,-1,sizeof(ar));

2020-03-19 10:00:17 52

原创 最长回文子串--Manacher

问题:输入一个字符串找出最长回文子串#include<stdio.h>#include<string.h>char a[2000];int b[2000];//记录对应下标回文数int main(){ char t[1000]; scanf("%s",&t); int size=strlen(t)*2+1;//在头尾和字符之间加入字符串中没有的字...

2020-03-13 12:08:45 51

原创 全错位

问题:给n个人发邮件,求全发错对象的情况数,数字有点大,请输出模1e9+9之后的结果。#include<stdio.h>int main(){ long long a1=0; long long a2=1; long long a3; int n; scanf("%d",&n); if(n==1){ printf("0"); r...

2020-03-11 21:16:47 161

原创 第二类斯特林

问题:把n个同学分成k个小组,要求:小组不能为空,每个同学都会且仅会属于一个小组,不同小组的人数不一定相同,求方案数,防止溢出,可对10e^9取模—————————————————————————————————样例输入6 3样例输出90#include<stdio.h>long long s[3001][3001];//s(n,k)表示n个人,k个小组int mai...

2020-03-11 20:50:57 47

原创 生成字符串

问题:把 n 个 1 和 n 个 0 组成字符串,在任意的前 k 个字符中,1的个数不能少于 0 的个数,满足要求的字符串共有多少个,这个数可能会很大,只需输出这个数除以1e9+9的余数—————————————————————————————————样例输入10样例输出16796#include<stdio.h>typedef long long LL;LL MOD...

2020-03-11 20:33:24 137

原创 链表的环

问题:1:判断链表有没有环//head指向链表第一个节点int hasRing(ListNode* head){ ListNode*p=head; ListNode*c=head; while(c!=NULL&&c->next!=NULL){//偶数个节点时由第一个条件结束 p=p->next;//慢指针 //...

2020-03-10 13:05:42 91

原创 位运算

1:整数加法,运算不能超范围a+b=(a&b)*2+(a^b);2:整数减法,运算不能超范围a-b==a+(~b+1);a-b=(a&(~b+1))*2+(a^( ~b+1));3:2的整数幂(a&(a-1))==0 :T4:整数的二进制表达中有多少个1int c-0;while(a){ c++; a&=a-1;}5:找出不大于N的最大的...

2020-03-09 16:00:38 82

原创 重建二叉树

问题:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。输出二叉树的后序遍历——————————————————————————————Sample Input81 2 4 7 3 5 6 84 7 2 1 5 3 8 6Sample Output7 4 2 5 8 6 3 1#include <stdio....

2020-03-07 13:36:20 58

原创 全排列--优先深度搜索

问题:输入一个整数 n 输出1,2,3…n 的全排列#include<stdio.h>#include<stdlib.h>void f(int st,int*p,int*q,int x);int main(void){ int i,x,*p,*q; scanf("%d",&x); p=(int*)malloc(sizeof(int)*x);//存储排...

2020-03-07 13:09:52 138

原创 奇偶分离的排序--归并排序

问题:有n个数,每一次可以交换两个相邻的且奇偶性不同的两个数,可以进行任意多次操作(包括0次),求最终得到的字典序最小的序列。————————————————————————————————————Sample input81 2 5 2 5 6 3 7Sample output1 2 2 5 5 3 6 7#include<stdio.h>int j[1048579...

2020-03-07 10:38:33 1437

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除