求助:望高手指点迷津!

cl_tom 2009-12-31 03:01:35
00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99

有如上数组,a(0),a(1).....,a(98),a(99),其值为0或1
如何设计算法,求符合条件的最近的那个值
如:定位到a(44),查找其周围最近的那个值为1的点(上下左右都要查找)
求高手指点?
本人QQ:30948508
...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragonzht 2010-01-01
  • 打赏
  • 举报
回复
以给定点为中心,距离相等的点构成一个菱形,枚举这个菱形的边界点即可
给定点的坐标为X,Y
FOR 距离N=0 to 最大值
BEGIN
FOR x=0 to N
y=N-x
判定点(X+x,Y+y) (X+x,Y-y) (X-x,Y+y) (X-x,Y-y) 是否为1
END FOR x
如果上面循环中发现为1的点,那么找到了最近的点,退出外循环
END
cl_tom 2009-12-31
  • 打赏
  • 举报
回复
谢谢keeya0416 我先试试看是否行得通?
FancyMouse 2009-12-31
  • 打赏
  • 举报
回复
允许多少预处理?
keeya0416 2009-12-31
  • 打赏
  • 举报
回复
应该是 算 a[34] 近吧
如果是的话
a[m][n] 的 a[i][j] 距离可以算是 |m - i| + |n - j|
用递归吧 找给定的数的上下左右点 是 1 就返回坐标 再计算距离
得出最小的那个就可以了
具体的数据结构,楼主自己选择吧
rebirth2009 2009-12-31
  • 打赏
  • 举报
回复
请问,a(33)和a(34)都是1,哪个离a(44)进呀?还是一样近?
cl_tom 2009-12-31
  • 打赏
  • 举报
回复
高手在哪里?求求你们快快出现,救救俺

33,008

社区成员

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

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