感悟:昨晚改BUG搞太晚了,早上9点笔试,然后定的8点闹钟,关闹钟后说眯一会,然后梦中被吓醒,一看时间8.58了。。。
总共2道编程题,有点难。。。。
1.给你n个数,要求min(a[1, i -1 ]) > a[i] > max(a[i +1, n])且min(a[1, i - 1]) 是max(a[i +1, n])的整数倍,求这样数的个数
比荷兰国旗问题复杂吧,我是暴力求解的,TLE了,然后我事后搜Leetcode上说 bitree的解法 ,但是也没给清楚,不想了,难受
2.n*m的数字矩阵,求第一行任意位置到第N行任意矩阵的最短距离
暴力搜索肯定不行,个人是用dp1[i][j] = min(dp1[i - 1][j], dp1[i][j - 1]) + dp1[i][j];和dp2[i][j] = min(dp2[i + 1][j], dp2[i][j + 1]) + dp2[i][j];双向DP做的
但是不知道为什么结果输出有问题,没想清楚,2题都算骗了点分吧。。。。。
bitree解决方案
来源:oschina
链接:https://my.oschina.net/u/4406457/blog/3226552