• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua判断表中数据是否连续,0可以代表任何数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近看到有lua面试题,挺有意思的,一张表中有若干个数,0可以代表任何数

比如有张表{9, 2, 4, 1, 3, 0, 0, 0, 0},按照规则这张表中的四个0可以用来代表5,6,7,8,那么这张表是连续的,判断思路我是这样的

1、先遍历表,计算出0的个数

2、对表进行排序

3、计算相邻数之间的差值x,明显,如果x为1,那么这两个是连续的,如果不为1,那么x-1就是这两个数之间需要补充的数的个数,比如6和4的差x = 2,那么6和4之间需要补充的数就是x - 1 = 1,补一个5就可以连续了

 

具体代码如下

local nums = {9, 2, 4, 1, 3, 0, 0, 0, 0}
local
function cal(nums) local n = #nums print("n = ", n) --计算0的数量 local zero = 0 for i=1,n do print(nums[i]) if nums[i] == 0 then zero = zero + 1 end end print("zero = ", zero) --排序 local sortt = function(a, b) return a < b end table.sort( nums, sortt ) local pre = nums[1] --计算总的补充数量 local x = 0 for i=2,n do print(nums[i]) local tx = nums[i] - pre x = x + tx - 1 pre = nums[i] end print("x = ", x) --如果x比0的数量少,那么可以将数列补充成连续的 if x <= zero then print("is ok") else print("is not ok") end end

cal(nums)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
基于ngx_lua的动态服务路由方案发布时间:2022-07-22
下一篇:
lua定时器实现发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap