数据结构与算法
文章平均质量分 51
Soarwe
这个作者很懒,什么都没留下…
展开
-
大整数相加 C++
思想:1.将两个大整数存放在数组里,由于整数相加存在进位问题,因此倒置数组进行相加。2.考虑到两整数相加后位数最多为两整数最大位数加一,因此倒置两整数数组时,使两个数组的长度为和的最大为数。采用补0的思想。 如:12000+3400 倒置后应为:000210004300 注意不要倒置为:000021000043原创 2014-04-05 13:33:38 · 690 阅读 · 0 评论 -
大数相乘 C++
#include #include #define MAX 100int main(){char a[MAX],b[MAX];int a1[MAX],b1[MAX];int length_a,length_b,m=0,len;int result[MAX*2]={0},t;printf("请输入第一个大整数:");scanf("%s",a);原创 2014-04-05 18:36:27 · 511 阅读 · 0 评论 -
LeetCode_无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的...原创 2020-04-10 15:24:48 · 99 阅读 · 0 评论 -
八皇后问题递归解发
#include #include using namespace std;int count=0;//记录总的放法int judge(int i,int j,int a[][8])//冲突检查{ int m,n; for(m=0;m<8;m++)//判断列是否有皇后 if(a[i][m]==1 && m!=j) return 0; for(m=0;m<8;m++)//判原创 2014-05-24 20:15:10 · 640 阅读 · 2 评论 -
求数组中的最大值和次最大值、、、
在这里仍然使用分冶法、、、分冶法的具体思想原创 2014-05-21 23:37:22 · 1367 阅读 · 2 评论 -
求数组元素的最大值最小值
这是编程之美上的一个题目:一般的做法:void main(){ int a[5]={78,63,78,67,18}; int min=0,max=0; min=max=a[0]; for(int i=0;i<5;i++) { if(min>a[i]) min=a[i]; if(max<a[i]) max=a[i]; }原创 2014-05-21 22:26:42 · 1128 阅读 · 2 评论 -
归并排序
#include #include void merge(int *a,int low,int high,int mid){ int *b,i=low,j=mid+1,k=0; b=(int *)malloc(4*(high-low+1)); while(i<=mid && j<=high) { if(a[i]<a[j]) b[k++]=a[i++]原创 2014-05-19 15:06:32 · 500 阅读 · 1 评论 -
递归全排列
如0 1 2 3的全排列: 编程思想:如 0 1 2 3 的全排列=(0+1 2 3的全排列)+(1+0 2 3的全排列)+(2+1 0 3的全排列)+(3+ 1 2 0的全排列)。1 2 3 的全排列=(1+2 3的全排列)+(2+1 3的全排列)+(3+1 2的全排列)在求几个数的全排列时,每次使后面的元素和第一个交换后,再求出剩余元素的全排列。如 0123 0132 02原创 2014-04-12 12:47:45 · 1774 阅读 · 4 评论