重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天在MSDN论坛中看到这样的一个问题,觉得非常锻炼思维能力,所以这里记录下来作为备份,题目的要求是这样的:
成都创新互联2013年至今,是专业互联网技术服务公司,拥有项目网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元武平做网站,已为上家服务,为武平各地企业和个人服务,联系电话:18980820575假设有一组字符串数组{"0","0","1","2","3",“0”,"4","0","0"},如何查找使0等于离它最近的且不为0的元素,如果离它最近的不为0的元素有两个,则等于上一个元素,即想得到重新赋值后这样的数组{"1","1","1","2","3",“3”,"4","4","4"}
这里的实现思路摘自论坛中 zjyh26的回复,实现思路为:
1. 首先对数组里面的数字进行一次遍历,如果当前的值不为“0”把值添加进的结果数组中,否则对它进行处理。
2. 处理不为“0”的值的时候,用一种“等距离比较”的方法,找出等距离内的左右2个值,优先看左边的值是否为“0”,如果是的话跳过,如果不是的话将结果数组内的当前值替换为此值。
3. 距离(就是代码里面的j)的大值为数组长度减去1,遍历的时候注意i-j的值不小于0,i+j的值要小于数组长度。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。