基础编程题之奇数位(偶数位)都是奇数(偶数)
生活随笔
收集整理的這篇文章主要介紹了
基础编程题之奇数位(偶数位)都是奇数(偶数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目
- 解題思路
- 代碼
- 注意
題目
牛客
解題思路
題目的意思是給定一個數組arr,讓你調整它,最終這個數組必須滿足奇數位上的數字必須是奇數,偶數位上的數字必須是偶數,其中1,3,5,7…算作奇數位,0,2,4,6,8…算作偶數位
這道題不難,但是大家在解決時可能會想得過于麻煩。我們可以讓變量i永遠指向偶數位,變量j永遠指向奇數位,如果偶數位上是偶數,奇數位上是奇數那么就略過,反之直接交換兩個出現矛盾的位置的數字即可
代碼
class Solution { public:void oddInOddEvenInEven(vector<int>& arr, int len) {int i=0;int j=1;//i和j分別指向偶數位和奇數位while(i<len && j<len){if(arr[i]%2==0)//如果偶數位上是偶數,略過{i+=2;continue;}if(arr[j]%2!=0)//如果奇數位上是奇數,略過{j+=2;continue;}swap(arr[i],arr[j]);//出現矛盾,就代表奇數位上偶數,偶數位上奇數,那么只需交換即可}} };注意
這道題在牛客網上容易出現誤判,往往會因為結果沒問題但是就是與題目給出的預期答案的順序無關從而誤判
總結
以上是生活随笔為你收集整理的基础编程题之奇数位(偶数位)都是奇数(偶数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Conda官方下载安装步骤及conda用
- 下一篇: Mysql Connector 5.1