- 博客(12)
- 收藏
- 关注
原创 动态规划——矩阵乘法
public class test_7{ public static int[] arry_1=new int[]{30,35,15,5,10,20,25}; public static void main(String[] args){ int[][] arry_2=new int[7][7]; int[][] arry_3=new int[7][7]; for(int i=0;i<arry_2.length;i++) ...
2022-05-10 20:02:39
236
原创 动态规划股票问题教你从暴力递归到动态规划
public class test_5{ public static void main(String[] args){ int[] arry = new int[]{1,2,3,4,5,6}; System.out.println(fun(arry,0,5)); } //自底向顶的动态规划 public static int fun(int[] arry ,int low,int high){ if(high<0)...
2022-04-27 13:50:25
94
原创 从暴力递归到动态规划(入学者的理解)
动态规划最难的地方莫过于拿递归;所以首先从递归方面去探讨问题;1.何为暴力递归,主要凸出暴力方面。而这暴力方面大多则是从蛮力枚举的方式体现出来。例如著名的0-1背包就是用蛮力枚举的方式把所有类型的问题给列出来,然后加上相应的条件过滤不符合条件,然后搜索出价值最大的即可。而递归的方式则是用自顶向下的方式枚举出所有方法,然后用边界条件屏蔽所有不符合条件的,返回所要求的最大值;2.对于求解动态规划的递归大多都是满足f(n)?f()?f()之类的结构,因为在动态规划的时候所有的结果都是通过f(n)?f()?
2022-04-27 11:09:00
141
原创 动态规划走楼梯粒子的表示
public class test_4{ public static void main(String[] args){ System.out.println(fun_1(39)); System.out.println(fun_2(1000,makeArry(1000))); System.out.println(fun_3(1000)); } public static int fun_1(int n){ if(n...
2022-04-26 18:59:51
95
原创 数组的逆序数对数(四种方法包含递归与非递归)
public class test_5{ public static void main(String[] args){ int[] arry = new int[]{9,8,7,6,5,4,3,2,1,0}; //System.out.println(sumArry_1(arry)); //System.out.println(sumArry_2(arry,0,9)); //System.out.println(sumArry_4(a...
2022-04-07 23:18:55
362
原创 约瑟夫杯算法
int main(){ int m=0; printf("请输入初始值:\n"); LinitList(*p);//初始化链表 GreatFormHead(L); //尾插法当链表 scanf("%d",m); //开始给定的初始值 int j=1,k=m; Node *p,*pre; while(p->next=p) { if(p->data!=k) { pre=...
2021-10-17 11:00:19
162
原创 删除链表倒数几位结点
/*链式表删除倒数第几位值*/int DellList(Seqlist *seqlist,int index,int *e){ Node *p,*pre; int i=0,j=0; p=L-next; pre=L; while(p->next == NULL)//遍历链表找到链表结点长度; { p=p->next; j++; } if(index > j) printf(...
2021-10-16 20:12:19
68
原创 线性表的逆置(两种方法的短发思想)
/*线性表的逆置*/void(Seqlist *seqlist)/*顺序表的逆置*/{ Node *p; int n=0,i=0,j=0,k=0; n=L-last/2 while(n<=L-last) { k=p->data[i]; p->data[i]=p->data[L-last-i]; i++; } return 0;}/*链式表的逆置*//*利...
2021-10-16 19:35:54
280
原创 顺序表中将奇数排在偶数前面。
Node *q; int i=0,j=0,r=0; while(i<=L-last) { if(q->data[i]%2 != 0) { r=q->data[j]; q->data[j]=q->data[i]; r->data[i]=r; i++; j++; } else { i++; }}/...
2021-10-16 17:43:12
990
原创 设计算法删除递增顺序表的重复结点。
{ Node *p; int i=0,j=0; while(i<=L->last)//last为数组长度; { if(p->data[i]!=p->data[i+1]) { p->data[j]=p->data[i]; i++; j++; } else { while(p->data[i]!=p->data[i+1]) ...
2021-10-16 17:17:53
257
原创 顺序表中删除介于X和Y的所有元素使其空间复杂度为O(1)的算法思想;
Node *q; int i=0,j=0; while(i<=l->last) { if(q->data[i]<X&&q->data[i]>Y) { q->data[j] = q->data[i]; i++; j++; } else i++; } l->last=j-1;//这里是因为while循...
2021-10-16 17:07:22
848
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人