Project1

标题: 从5个数中取出最小的3个非0数的索引 [打印本页]

作者: 490832999    时间: 2013-6-27 19:50
标题: 从5个数中取出最小的3个非0数的索引
arr = [?,?,?,?,?]
已知arr有5个数字元素,有可能出现0,从中取出最小的3个非0数的索引
如果有2个或以上0则取全部非0元素

def getNum
      str = []
      ob = arr
      ob.delete(0)
      if ob.size >3
          这里要怎么写...不会....
     else
          arr.each_index{|i|
              str.push(i) if arr[i] != 0
          }
     end
     return str
end
作者: Sion    时间: 2013-6-27 20:06
本帖最后由 Sion 于 2013-6-27 20:22 编辑
  1. new_array = []
  2. array.sort.each {|i|
  3.   next if i == 0
  4.   new_array.push(i)
  5.   break if new_array.size == 3
  6. }
复制代码
...终于改对了


- -b 不对,才发现你要的是索引 啊啊啊啊啊啊.......

那就加这个吧
  1. array_new = []
  2. new_array.each {|i| array_new.push(array.index(i))}
复制代码

作者: 490832999    时间: 2013-6-27 20:26
Sion 发表于 2013-6-27 20:06
...终于改对了

怪不得刚才看不懂了....
现在可以了...
谢谢哈~{:2_277:}
研究中...
要弄清楚原理...
作者: 490832999    时间: 2013-6-27 20:30
Sion 发表于 2013-6-27 20:06
...终于改对了

还请教一下
你之前的代码中有的
<=>
这符号是什么意思,怎么用的
帮助文档都没有说明....
作者: 490832999    时间: 2013-6-27 20:40
Sion 发表于 2013-6-27 20:06
...终于改对了


假如....arr是5个相同的非0数值.....
那么最后得到的是....[0,0,0]
{:2_270:}
作者: 490832999    时间: 2013-6-27 20:48
490832999 发表于 2013-6-27 20:40
假如....arr是5个相同的非0数值.....
那么最后得到的是....[0,0,0]

暂时解决....针对元素均为整数情况

#array = [5,5,5,5,5]
array = [58,0,32,32,7]

new_array = []
array.each_index {|i|
  new_array.push(0.1*i+array)
}

array_new = []
new_array.sort.each{|i|
  next if i.to_i == 0
  array_new.push(new_array.index(i))
  break if array_new.size == 3
}

msgbox array_new
作者: Sion    时间: 2013-6-27 20:54
  1. array_new = []
  2. array.each_with_index {|a, i| array_new.push([a, i]) if a != 0}
  3. array_new.sort!
  4. array_new.pop while array_new.size > 3
  5. return array_new.collect {|a| a[1]}
复制代码

作者: xTsukihime    时间: 2013-6-27 21:22
最后的答案应该是string或是array?
作者: 490832999    时间: 2013-6-27 21:24
Sion 发表于 2013-6-27 20:54

好了

就这个each_with_index......帮助也没...你给的网站也没找到...
作者: Sion    时间: 2013-6-27 21:41
本帖最后由 Sion 于 2013-6-27 21:43 编辑
490832999 发表于 2013-6-27 21:24
好了

就这个each_with_index......帮助也没...你给的网站也没找到...


那网站上好像漏了,block 里的两个参数分别是元素与元素的索引。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1