当前位置: 首页 > news >正文

如何针对你的网站做搜索优化/网站搜索优化官网

如何针对你的网站做搜索优化,网站搜索优化官网,快速让百度收录网站,企业网站怎么做的高大上腾讯算法面试题 最近公司经常有些分享会,前几天有个某婚恋网元老级程序员跳到我们公司并做了次分享,内容是一些算法方面的。 闲来无事动动脑。 偶见一腾讯面试题 http://wenku.baidu.com/link?urlGkotlTmLLZREnmZUhWgRxe4qjeGxRZ9cPiz33uJmGU86YOhixx7U…
腾讯算法面试题

最近公司经常有些分享会,前几天有个某婚恋网元老级程序员跳到我们公司并做了次分享,内容是一些算法方面的。

闲来无事动动脑。 偶见一腾讯面试题

http://wenku.baidu.com/link?url=GkotlTmLLZREnmZUhWgRxe4qjeGxRZ9cPiz33uJmGU86YOhixx7U9iB5OFqSVU5uV3budQId38AUCZWVSXGvdFt1xjO1miHbeQgRRCbhAu3

一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的 相对顺序 比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时间复杂度O(N),空间O(1)

 

这是我的代码,欢迎朋友指正:

 

    public static void txsort(int[] array){int negCount = 0; int length = array.length; int negIndex =0; for(int i=0;i<length;i++) { if(array[i]<0) negCount++; } if(negCount==0) return; for(int i=0;i<length;i++) { int posIndex = (i-negIndex)%(negCount-negIndex) + negIndex; int newIndex = i+negCount - negIndex; if(array[posIndex]<0) { newIndex = negIndex; negIndex++; } int temp = array[posIndex]; array[posIndex] = array[newIndex]; array[newIndex] = temp; if(negIndex==negCount) break; } }

思想如下: 题目要求空间O(1)in-place,时间O(n),且是必须是稳定的。初一看像排序,排序算法中快排的时间复杂度是nlogn。在看一次题目, 只是把正负数分开,不涉及到从大到小。审题很重要。。。。

1 先找出负数的个数N

2 从前到后把元素向后移 负数个位子N, 把后面位置上的数先暂存到前面为负数留的位置上。 当移动 第N+I时,此时N+I 其实是原数组的I, 而N+1 的真实值存在前面的I位置上,所以这里移动的是I 到 N+ I+ N去。

3 遇到负数就往前插 后面的数往后移动 N -1。

4 直到负数全到前面为止

难点: 因为不能开辟新的空间,否则不满足空间复杂度O(1),只能在数组内移动,所以就比较饶。下面把移动演示一下:

0(index)12345
17-59-1215
 719-1215
-5(1 和 -5 交换 暂存-5 到该位置)     
  17-1215
-59(7和9交换 9暂存到改位置)    

-5(-5原始index 是2,

这里是把原始位置上的-5插入到第0个位置)

 17-1215
 9    
-5 17915
 

-12

(把index 3上的9 往后移动

2(负数的总数) - 1(已经存好的负数个数))

就是把index3 移到index4上

    
-5-1217915

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

要注意int posIndex = (i-negIndex)%(negCount-negIndex) + negIndex; 中的i-negIndex. 去掉已移动。

 

posted on 2014-08-05 15:15 清凉tea 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/qingliangtea/p/3892352.html

http://www.lbrq.cn/news/1438471.html

相关文章:

  • 什么是域名解析/网络优化推广公司哪家好
  • 个人动漫网站怎么做页面/信息流广告模板
  • 成都b2c网站/百度之家
  • 做跟单员的话应该关注哪些网站/东莞企业推广网站制作
  • 英文建站模板/网址怎么创建
  • php靓号网站源码/属于网络营销特点的是
  • 翻译国外网站做原创/免费b2b
  • 网页开发者工具怎么用/苏州seo报价
  • 做网站有用吗/百度网盘资源搜索引擎搜索
  • 运维网站制作/会计培训班初级费用
  • 线下推广活动/南昌网站seo外包服务
  • 两人做性视频网站/深圳seo博客
  • 如何建立自己的平台/惠州市seo广告优化营销工具
  • 高中男女做那个视频网站/bing收录提交
  • 织梦网站在css中怎样做导航栏/免费二级域名注册申请
  • 广东哪家网站建设网页设计服务/营销策略手段有哪些
  • 在建项目备案人员查询/南宁seo产品优化服务
  • 企业网站seo外包 s/国际新闻网
  • 网站制作工资/网络优化工程师前景
  • 深圳营销外贸网站制作/百度用户服务中心人工24小时电话
  • 网站 模板/高清视频线和音频线的接口类型
  • 花20亿做网站/淘宝关键词指数
  • 比较著名的网站用javaweb做的/百度新闻发布平台
  • 深圳华强北做网站/竞猜世界杯
  • 洛阳便宜网站建设报价/阿里巴巴官网首页
  • 没有固定ip做网站/网站排名优化工具
  • 把网站做成手机版/国外免费推广网站有哪些
  • 国家企业信用平台官网/在线seo优化工具
  • 全球设计网分站/网络app推广是什么工作
  • 网站建设和推广的完整话术/怎么推广软件
  • 消费级显卡分布式智能体协同:构建高性价比医疗AI互动智能体的理论与实践路径
  • SVN提交服务器拒绝访问的问题
  • 【国内电子数据取证厂商龙信科技】RAID存储技术
  • Pytest项目_day12(yield、fixture的优先顺序)
  • Oracle数据库中的Library cache lock和pin介绍
  • 嵌入式学习的第四十八天-中断+OCP原则