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

网站开发用php还是js简单网站建设软件有哪些

网站开发用php还是js,简单网站建设软件有哪些,网站源码检测,wordpress 显示微信给你一个长度为 n 的整数数组 nums #xff0c;其中 nums 的所有整数都在范围 [1, n] 内#xff0c;且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数#xff0c;并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问…给你一个长度为 n 的整数数组 nums 其中 nums 的所有整数都在范围 [1, n] 内且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。 class Solution {public ListInteger findDuplicates(int[] nums) {//思路遍历数组每个数-1再取模找出真实位置再加上数组的长度放进数组真实的位置上//再遍历发现数组中元素大于2倍数组长度时将其下标1添加进返回结果的数组int len nums.length;for(int num : nums){//找出真实位置int x (num - 1) % len;//加上数组长度nums[x] len; }//创建返回结果的数组ListInteger ret new ArrayListInteger();//遍历数组找出数组中元素大于2倍数组长度的值for(int i 0;i len;i){if(nums[i] len * 2){ret.add(i1);}}return ret;} } 官解 方法一将元素交换到对应的位置 思路与算法 由于给定的 n个数都在 [1,n]的范围内如果有数字出现了两次就意味着 [1,n] 中有数字没有出现过。 因此我们可以尝试将每一个数放在对应的位置。由于数组的下标范围是 [0,n−1]我们需要将数 i 放在数组中下标为 i−1 的位置 如果 i 恰好出现了一次那么将 iii 放在数组中下标为 i−1 的位置即可 如果 i 出现了两次那么我们希望其中的一个 i 放在数组下标中为 i−1 的位置另一个 i 放置在任意「不冲突」的位置 j。也就是说数 j1 没有在数组中出现过。 这样一来如果我们按照上述的规则放置每一个数那么我们只需要对数组进行一次遍历。当遍历到位置 i时如果 nums[i]−1≠i说明 nums[i]出现了两次另一次出现在位置 num[i]−1我们就可以将 num[i]\textit{num}[i]num[i] 放入答案。 放置的方法也很直观我们对数组进行一次遍历。当遍历到位置 iii 时我们知道 nums[i]应该被放在位置 nums[i]−1。因此我们交换 num[i]和 nums[nums[i]−1] 即可直到待交换的两个元素相等为止。 class Solution {public ListInteger findDuplicates(int[] nums) {int n nums.length;for (int i 0; i n; i) {while (nums[i] ! nums[nums[i] - 1]) {swap(nums, i, nums[i] - 1);}}ListInteger ans new ArrayListInteger();for (int i 0; i n; i) {if (nums[i] - 1 ! i) {ans.add(nums[i]);}}return ans;}public void swap(int[] nums, int index1, int index2) {int temp nums[index1];nums[index1] nums[index2];nums[index2] temp;} } 方法二使用正负号作为标记 思路与算法 我们也可以给 nums[i]加上「负号」表示数 i1已经出现过一次。具体地我们首先对数组进行一次遍历。当遍历到位置 iii 时我们考虑 nums[nums[i]−1]的正负性 如果 nums[nums[i]−1] 是正数说明 nums[i]还没有出现过我们将 nums[nums[i]−1] 加上负号 如果 nums[nums[i]−1]是负数说明 nums[i]已经出现过一次我们将 nums[i]放入答案。 细节 由于 nums[i] 本身可能已经为负数因此在将nums[i] 作为下标或者放入答案时需要取绝对值。 class Solution {public ListInteger findDuplicates(int[] nums) {int n nums.length;ListInteger ans new ArrayListInteger();for (int i 0; i n; i) {int x Math.abs(nums[i]);if (nums[x - 1] 0) {nums[x - 1] -nums[x - 1];} else {ans.add(x);}}return ans;} }
http://www.hkea.cn/news/14500368/

相关文章:

  • 网站营销看法图片上传 网站建设教学视频
  • 移动网站屏蔽世界工厂采购网官网
  • 深圳城市规划设计研究官方网站哈尔滨seo推广优化
  • 自己家里做网站网速慢网站建设小程序湖南
  • 给客户做网站 赚钱吗删除wordpress缓存文件
  • 什么网站可以做设计赚钱吗厦门网络推广外包
  • 网站建设 中企动力东莞后台管理做兽设的网站
  • 深圳电梯广告制作公司网站深圳网络推广系统
  • 凡科建站官网 网络服务张家界互联网公司有哪几家
  • 丰台做网站的公司服务器建站用哪个系统好
  • 网站建设盈利模式delphi10.2 网站开发
  • 海门网站定制wordpress插件dx seo下载
  • 做网站的用什么主机好毕业设计网站方向
  • 做网站的旅行社最新引流推广方法
  • 建设网站的相关技术指标个人适合网站类型
  • 手机网站发展网络搭建与应用教程
  • 建设工程安全管理网站东莞网站开发找谁
  • 网站服务器可以自己做吗优秀网站设计案例分析ppt
  • 大学网站模板下载高要区公路建设规划局网站
  • 台山市网站建设广州个人网页制作
  • 做公司网站要多久泸州住房和城乡建设厅网站
  • 深圳网站搭建费用龙岩seo招聘
  • 网站的页面布局无锡网站设计多少钱
  • 大连开发区网站开发公司网站设计的任务
  • 大冶建设局网站怎么自己创建网页
  • 用织梦网站后台发布文章为什么还需要审核给宝宝做辅食的网站
  • 织梦 帝国 php cms 媒体网站 哪个linux 网站配置
  • 可信网站证书恢复被百度k网站 关键词收录
  • 免费的网站申请兰州高端网站建设
  • 社交网站建设技术为什么做的网站预览出来什么都没有