今天看到了两道有关于前缀和应用的的算法题,解法挺巧妙的,分享给大家。

在这里直接放上我的代码,题目和注释在代码解释的都非常清楚。

 1     /*
 2      * 题目描述:给定一个数组a[N],我们希望构造数组b[N],
 3      * 其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]。
 4      * 在构造过程:不允许使用除法;要求:O(1)空间复杂度和O(n)时间复杂度;
 5      * 除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、对空间和全局静态变量等);
 6      */
 7     class ConstructeAarry
 8     {
 9         public void ConstructeAarrySolution(double[] nums)
10         {
11             int length = nums.Length;
12             double[] result = new double[length];//存放结果
13             //先计算后缀积
14             for (int i = length - 1; i >= 0; i--)
15             {
16                 result[i] = nums[i] * (i == length - 1 ? 1 : result[i + 1]);
17             }
18             //再计算前缀积,就会得出结果
19             double j=1.0;
20             for (int i = 0; i < length; j *= nums[i++])
21             {
22                 result[i] = j * (i == length - 1 ? 1 : result[i + 1]);
23             }
24         }
25     }
26
27
28
29     /*
30      * 题目描述:现有一个数组,里面包含了正数和负数,取其中若干个连续的数,要求这些数的和的绝对值最小
31      * 对数组A[1....N],做和运算S[1...N],其中S[1] = A[1]; S[2] = A[1]+A[2];...;S[N]=A[1]+A[2]+A[3]+...+A[N]
32      * 把所有和在数轴上表示出来,则最小值只会出现在相邻两个数之间,故需要排序,所以算法的时间复杂度主要取决于排序的时间复杂度
33      * 在这里使用快速排序算法
34      */

转载于:https://www.cnblogs.com/FJuly/p/4594000.html

两道关于前缀和的算法题相关推荐

  1. 求杨辉三角的前n行数据_两道简单的套公式算法题:杨辉三角

    杨辉三角应该是大家很早就接触到的一个数学知识,它有很多有趣的性质: 每个数字等于上一行的左右两个数字之和,即 C(n+1,i) = C(n,i) + C(n,i-1) 每行数字左右对称,由 1 开始逐 ...

  2. 装饰器python的通俗理解_2道极好的Python算法题 | 带你透彻理解装饰器的妙用

    今天我分享两道非常好的算法题,大家耐心看完两道算法题之后,注意精华在最后,我相信大家对装饰器的理解又会更上一层楼. 1.斐波那契数列 1).这个序列非常有名,我非常喜欢这个序列(有同学问我为啥,偷偷告 ...

  3. 两个数组合并排序python_python算法题---合并两个有序数组

    leetcode-python-合并两个有序数组 今天第一次电话面试,有点紧张,所以自己感觉表现的不是很好,面试过程中面试官问到了两个算法题,都是leecode上面的题目,而且我都做过,但是当时一下子 ...

  4. 30道面试常见的数据结构算法题

    注意: 边界条件的判断 取地址符传参的使用 溢出问题,long long 题目来源:https://github.com/ZXZxin/ZXBlog/blob/master/%E5%88%B7%E9% ...

  5. 两道有点难的回溯利口题996_37

    996. Number of Squareful Arrays 给一个不含负数的整数数组,问有多少种排列组合使数组可开方的.一个数组是可开方的意思是数组中每两个相邻数之和都是可开方的. Input: ...

  6. 两个矩阵是否相交的算法_刷透近200道数据结构与算法,成功加冕“题王”,挤进梦中的字节!...

    不管是学生还是已经工作的人,我想彼此都有一个相同的梦想:进大厂! 眼看着2020年还有个三十来天就要完美收尾了,那么如何才能在未来三个月弯道超车赶上"金三银四的春招",进入梦寐以求 ...

  7. BAT七年经验,却抵不过外企面试的两道算法题?

    整理| 琥珀 出品| AI科技大本营 又遇年底跳槽季,如果你曾在 BAT 等互联网大厂有过较为丰富的工作经验,想要换份工作,面试时会主要考虑哪些因素? 面试外企,却被两道算法题难住? 近日,一位网友在 ...

  8. BAT 七年经验,却抵不过外企面试的两道算法题?

    整理| 琥珀 出品| AI科技大本营 又遇年底跳槽季,如果你曾在 BAT 等互联网大厂有过较为丰富的工作经验,想要换份工作,面试时会主要考虑哪些因素? 面试外企,却被两道算法题难住? 近日,一位网友在 ...

  9. 【算法】两道算法题根据提供字母解决解码方法和城市的天际线天际线问题

    算法目录 解码方法 Java解答参考: 天际线问题 Java解答参考: 大家好,我是小冷. 上一篇了解了项目相关的知识点 接下来看下两道算法题吧,用Java解答,可能更能激发一下大脑思考. 解码方法 ...

  10. 从两道基础二分算法题谈check函数的写法

    第一题:愤怒的牛 loj链接 两道题目都是基础二分的模板题,先看第一题,题意为总共有nnn间牛舍,mmm头牛,要将mmm头牛安排在nnn间牛舍,为防止牛互相攻击,使两头牛之间的最小距离最大!最大! 最 ...

最新文章

  1. oracle siplugincol表,ORACLE 经常使用的命令工具-第三章:表
  2. Husband的忏悔书(IT攻城狮)
  3. 【Java基础】递归输出目录下所有文件路径
  4. 深入浅出深度学习(二)分类器
  5. SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中
  6. win10 uwp 改变鼠标
  7. 小程序使用wxs 解决wxml保留2位小数问题
  8. 当你学不进去的时候 不妨看看大脑是怎么想的
  9. 5-1 File Transfer
  10. 快速排序图解_排序算法
  11. python3 tkinter 桌面软件教程
  12. AD19 绘制PCB操作流程笔记
  13. 上传照片显示服务器繁忙怎么回事,为什么每次上传照片时都发生网络错误
  14. 离线安装keras的主要步骤
  15. googleplay开发账号如何设置或更改帐号信息
  16. CTF---青青子衿(无C++注册机)
  17. vim移动光标功能键
  18. 第十一章 “万金油”的String,为什么不好用了
  19. VisionPro连接相机步骤
  20. python基础-程序语句结构

热门文章

  1. VMware vSphere 5.x 与 vSphere 6.0各版本功能特性对比
  2. shell脚本解析5----循环语句
  3. 冷美人为什么“冷”?
  4. EF Core in Action 中文翻译 第一部分导航
  5. java实现微信支付
  6. 66.为什么有时候在ISE软件中,顶层文件不能置顶?
  7. 2015/7/24 (等待回调,结果是盘中回调,盘末拉升,错过了进仓机会吗?详情进入...
  8. 清理300多台MySQL数据库的过期binlog日志
  9. django 自定义标签
  10. 同一个页面Button OnClientClick事件 和服务器验证控件提交问题