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