8月份的时候在优快云上看到一份算法题, 题目链接http://hero.youkuaiyun.com/Question/Details?ID=633&ExamID=628&from=4
解决思路:由于“同一行收入和支出的值不能同时为非零值”,所以任意一行只有收入或者只有支出。
为分析简单,题目转化为某一行只有两个数字:变更和余额(最后根据变更为正还是为负判断是支出还是收入)
第N行的余额,第N+1行的变更和余额是以下三种情况时,?可通过两行数据计算,其他情况只通过两行数据不可计算
1)N行: ;余额
N+1:?;余额
2)N行: ;?
N+1:变更;余额
3)N行: ;余额
N+1:变更;?
所以,只需从第一行循环到最后一行,判断属于以上第几种情况,再计算即可计算出部分?的值
有的情况下,只看两行无法计算,必须先计算后面的?,再计算前面的?,如下
N+1行 ?;?
N+2行 变更;余额
只能先计算出N+1行的第二

本文介绍了作者在优快云上遇到的一道算法题,涉及银行流水的分析。通过转化问题,将每行数据简化为变更和余额两部分。作者提出三种情况来确定何时可以计算未知值,并解释了在某些复杂情况下需要两次循环计算所有未知值的策略。最终,成功实现了挑战的代码解决方案。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



