sohu算法题,给出最优解

apple7891 2009-10-07 11:03:01
二维数组A[N][N],存储数字,满足i+j>x+y时,其中i j x y是数组下标,A[i][j]>A[x][y].有这样一个性质,现在给定一个数字X,在数组中找到它,要求性能最好
...全文
160 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
apple7891 2009-10-07
  • 打赏
  • 举报
回复
感谢二位拉
booksoon 2009-10-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 j2mekaifa 的回复:]
引用 4 楼 chinayuppie 的回复:
这就是一个O(N)的算法啦

你再北京?
[/Quote]

在北京?
不在
j2mekaifa 2009-10-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinayuppie 的回复:]
这就是一个O(N)的算法啦
[/Quote]
你再北京?
booksoon 2009-10-07
  • 打赏
  • 举报
回复
这就是一个O(N)的算法啦
apple7891 2009-10-07
  • 打赏
  • 举报
回复
有没有时间复杂度为0(N)的算法?
PeacefulBY 2009-10-07
  • 打赏
  • 举报
回复
取A[0][0]、A[0][1]、A[1][1]、A[1][2]、A[2][2]......A[N-1][N-1]为基准,根据定理这是严格升序的,在这里面进行二分查找将X定位到两个数之间,比如A[i][i]和A[i][i+1],然后再对所有下标和为2i和2i+1的数组元素顺序查找即可,时间复杂度为O(log2N+2N) = O(N)
booksoon 2009-10-07
  • 打赏
  • 举报
回复
设数组下标从1-N
将数组按下标的和等于2,3,4,...,2N分为2N-1组,则每一组均比上组的数字大
再从这2N-1组使用折半查找

33,026

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧