首页 > 其他分享 >剑指Offer 21. 调整数组顺序使奇数位于偶数前面

剑指Offer 21. 调整数组顺序使奇数位于偶数前面

时间:2023-08-26 19:45:12浏览次数:50  
标签:21 idx 奇数 Offer nums 偶数 数组 指针

题目链接: 剑指Offer 21. 调整数组顺序使奇数位于偶数前面

题目描述:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
解法思路:
一、快慢指针法:

  • 快指针遍历整个数组,当遇到奇数时,将当前数与慢指针所指的数交换,
  • 最终快指针遍历完后。整个数组的奇数一定是都换在了数组的前半部分。

代码:
func exchange(nums []int) []int {
idx := 0
for i := range nums {
if nums[i]%2 == 1 {
nums[i], nums[idx] = nums[idx], nums[i]
idx++
}
}
return nums

}

标签:21,idx,奇数,Offer,nums,偶数,数组,指针
From: https://www.cnblogs.com/lxing-go/p/17659327.html

相关文章

  • AtCoder Beginner Contest 215
    [ABC215F]DistMax2 二分出min(|xi-xj|,|yi-yj|),双指针维护是否存在满足条件的点对(i,j),假如二分当前值是x,那么|xi-xj|>=x&&|yi-yj|>=x #include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"typedeflonglongll;consti......
  • rhel 7.3搭建MySQL 5.7.21(一主一从GTID半同步复制)
    文档课题:rhel7.3搭建MySQL5.7.21(一主一从GTID半同步复制)数据库:MySQL5.7.21系统:rhel7.3环境:角色 主机名 IP 操作系统 server_id MySQL安装包master mysql-leo-master 192.168.133.111 rhel7.3 1 Percona-Server-5.7.21-20-Linux.x86_64.ssl101.tar.gzslave mysql-leo-s......
  • 剑指Offer 18. 删除链表的节点
    题目链接:剑指Offer18.删除链表的节点题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。解法思路:由于包含删除第一个节点的情况,因此采用虚拟头节点,当遍历时找到待删除节点的前驱节点时,删除节点即可代码:/***Def......
  • 剑指Offer 17. 打印从1到最大的n位数
    题目链接:剑指Offer17.打印从1到最大的n位数题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。解法思路:利用上题中的代码,快速计算出10^n的值,然后依次将结果加到ans代码:funcprintNumbers(nint)[]int{......
  • P2151 [SDOI2009] HH去散步 题解
    传送门简要题意:有\(n\)个人,\(m\)条无向边,走\(e\)条边,满足条件若第\(i\)条边为\(u->v\)则第\(i+1\)条边不能是\(v->u\),问\(s->t\)的方案有多少个,取模45989。因为要满足题目关于边的条件,所以我们考虑点边互换。将\(u-v\)的无向边一分为二变成\(u->v,v->u\),第\(i\)条边记录两个变......
  • 输入一组数按照奇数在前偶数在后打印出来
    voidnum_odd_even(intarr[],intsz){ intl=0; intr=sz-1; while(l<r) { while((l<r)&&(arr[l]%2==1)) { l++; } while((l<r)&&(arr[r]%2==0)) { r--; } if(l<r) { inttmp=a......
  • 剑指Offer 15. 二进制中1的个数
    题目链接:剑指Offer15.二进制中1的个数题目描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为'1'的个数(也被称为汉明重量).)。解法思路:思路一:num依次右移,判断每一次移动后最后一位是否是1,是的话,就ans++代码:func(numuint32)int{......
  • 剑指Offer 14- II. 剪绳子 II
    题目链接:剑指Offer14-II.剪绳子II题目描述:给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]...k[m-1]。请问k[0]k[1]...*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的......
  • Nexpose v6.6.213 for Linux & Windows - 漏洞扫描
    Nexposev6.6.213forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseAug23,2023请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • 8.21-8.27学习总结博客七:Spark机器学习与实时处理
    博客题目:学习总结七:Spark机器学习与实时处理入门内容概要:学习使用Spark进行机器学习和实时数据处理的基本知识,了解Spark的机器学习库和实时处理框架。学习资源:推荐的Spark机器学习和实时处理教程、案例和学习资源。实践内容:通过编写Spark应用程序,实践使用Spark进行机器学习和实时......