![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
命z
2018.1.23
展开
-
【有重复数字的全排列_求法 & 计算个数】
输入一组数字(可能包含重复数字),输出其所有的排列方式。样例输入:[1,1,1,2]输出: [ [1,1,1,2], [1,1,2,1], [1,2,1,1], [2,1,1,1], ]最暴力的解法:当重复的数字不存在,做正常的全排列,最后在结果集中去重即可。另外一种解法:找重复数字在...原创 2020-03-30 22:54:41 · 4744 阅读 · 1 评论 -
算法【二分搜索?啥时候用】
在说二分搜索前先说一下二分查找。二分查找的前提条件的是有序的。这样才能保证每一次都排除一半的数据,时间复杂度才是O(logN)实现:#include <iostream>using namespace std;//二分查找 返回位置标号 时间复杂度O(logN) //参数:数组list,数组区间[left, right], 要查找的数numberint b...原创 2020-03-26 22:14:12 · 731 阅读 · 0 评论 -
算法-01背包问题【对于 f[i][j] 的 j 为不超过、恰好等于、剩余空间的详解】
对于01背包问题的三种情况以及代码分析有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件...原创 2020-03-20 13:57:54 · 1077 阅读 · 2 评论 -
01背包问题【f [i][j] 为剩余空间情况——数组实现】
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个...原创 2020-03-20 13:47:06 · 438 阅读 · 0 评论 -
01背包问题【f [i][j] 为恰好等于情况——数组实现】
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个...原创 2020-03-20 13:42:28 · 456 阅读 · 0 评论 -
01背包问题【f [i][j] 为不超过 j 情况——数组实现】
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个...原创 2020-03-20 12:50:54 · 202 阅读 · 0 评论 -
C/C++【函数形参 int a,int *a ,int &a的区别】
例子如下:#include<iostream>using namespace std;void swap1(int a, int b) { cout << "swap1中:&a="; cout << &a << " &b=" << &b << endl; int tmp =...原创 2020-03-07 15:59:38 · 3243 阅读 · 1 评论 -
C/C++中【变量、变量名、地址之间的关系】
变量:用来标识一块内存区域,即变量就是一块内存区域,而这个区域里面的值可以更改,故叫做‘变’量变量名:是一个标识符,用来指代一块内存区域,即变量,变量名并不占用内存空间,使用变量名让我们操作内存以区域、以块为单位,提高了方便性实例说明:编译:变量名是给编译器看的,编译器根据变量是局部还是全局分配内存地址或栈空间,所谓的变量名在内存中不存在,操作时转换成地址数存放在寄存器中了。编译器会将...翻译 2020-03-07 14:51:08 · 2214 阅读 · 1 评论 -
C/C++中 ' & ' 和 ' * ' 的区别和用法
当申明变量int * p 的时,表示p是一个储存地址的变量;比如int p=0,表示p指向地址为00000000的地址单元。当申明指针p之后,再用p表示p指向的储存空间的内容;&表示取变量的地址;#include<iostream>using namespace std;int main(){ int a=123; //&a表示a在内存中的地址...转载 2020-03-07 13:27:09 · 1345 阅读 · 0 评论 -
分治——大整数乘法(趣学算法)
问题分析:当分到只有一位数时候,问题将会变的简单。算法设计分析伪代码详解算法复杂度分析原创 2020-03-04 22:32:59 · 568 阅读 · 0 评论 -
约瑟夫问题
约瑟夫生者死者游戏约瑟夫游戏的大意:30个游客同乘一条船,因为严重超载, 加上风浪大作,危险万分。因此船长告诉乘客,只有将全船 一半的旅客投入海中,其余人才能幸免于难。无奈,大家只 得同意这种办法,并议定30 个人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从 他的下一个人数起,数到第9人,再将他投入大海中,如此 循环地进行,直到剩下 15 个游客为止。问:哪些位置是...翻译 2020-03-03 20:57:59 · 706 阅读 · 0 评论 -
剪枝算法
一:剪枝策略的寻找的方法1)微观方法:从问题本身出发,发现剪枝条件2)宏观方法:从整体出发,发现剪枝条件。3)注意提高效率,这是关键,最重要的。总之,剪枝策略,属于算法优化范畴;通常应用在DFS 和 BFS 搜索算法中;剪枝策略就是寻找过滤条件,提前减少不必要的搜索路径。二:剪枝算法(算法优化)1、简介在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要...转载 2019-03-03 13:22:12 · 16528 阅读 · 0 评论 -
c语言--从.c文件到可执行文件,其间经历了几步?O1,O2,O3是什么?
1.从.c文件到可执行文件,其间经历了几步?高级语言是偏向人,按照人的思维方式设计的,机器对这些可是莫名奇妙,不知所谓。那从高级语言是如何过渡到机器语言的呢?这可是一个漫长的旅途呀!其中,得经历这样的历程:C源程序->编译预处理->编译->汇编程序->链接程序->可执行文件1.预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。...转载 2019-03-02 15:58:01 · 1485 阅读 · 0 评论 -
C语言--文件重命名
函数rename()用于重命名文件、改变文件路径或更改目录名称,其原型为int rename(char * oldname, char * newname); 【参数】oldname为旧文件名,newname为新文件名。 【返回值】修改文件名成功则返回0,否则返回-1。重命名文件: 如果newname指定的文件存在,则会被删除。 如...转载 2018-12-29 21:51:06 · 6762 阅读 · 0 评论