查找
YikNjy
难留少年时,总有少年来。
展开
-
有序的数组中的查找最大小于数
仔细描述一下我们需要解决的问题: 给你一个有序的序列,让你查出小于每个元素的最大坐标值: 算法1 :暴力(时间O(n^2) 空间O (1) ): 直接while一遍双指针算法 简单代码不附。 算法2 :前缀和(时间 O(n) dp思想分情况讨论 空间 O(n) ): 拿一个数组记录每一个元素前有多少个小于其的数: if(a[i]!=a[i-1]) { s[i]=s[i-1]+1; } else { s[i]=s[i-1]; } 算法3 : 二分查找 ( 时间 O(n * log(原创 2021-10-25 21:07:36 · 634 阅读 · 0 评论 -
查找类方法总结
在学习算法的过程中有许多问题都和查找有关,以下是我总结的几点查找算法: 1.暴力出奇迹: 原理:暴力枚举 优点:简单易想,初学者的最爱。 缺点:慢。 代码: 暴力for循环: for(int i=0;i<n;i++)cin>>a[i]; //部分查找可能还需要排序 for(int j=0;j<n;j++) { if(a[i]==x) { cout<<"yes"<<endl; break; } } 2.数组标记原创 2021-09-26 17:27:07 · 265 阅读 · 0 评论