LintCode 144-交錯(cuò)正負(fù)數(shù)

分析

  • 注意正負(fù)總數(shù)不同的情況
  • 采用2個(gè)游標(biāo)分別指向偶數(shù)下標(biāo)和奇數(shù)下標(biāo),交換不符合條件的元素
class Solution {
public:
    /**
     * @param A: An integer array.
     * @return: void
     */
    void rerange(vector<int> &A) {
        // write your code here
        int tag = 0;
        for (int i = 0; i < A.size(); ++i) {
             if (A[i] > 0) --tag;
             else ++tag;
        }
        if (!tag) tag = 1;
        for (int i = 0, j = 1; i < A.size() && j < A.size(); i += 2, j += 2) {
            while (i < A.size() && tag * A[i] < 0) i += 2;
            while (j < A.size() && tag * A[j] > 0) j += 2;
            if (i < A.size() && j < A.size()) {
                int t = A[i];
                A[i] = A[j];
                A[j] = t;
            }
        }
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,203評(píng)論 2 33
  • 排列組合的定義 排列的定義:從n個(gè)不同元素中,任意取m個(gè)元素,m≤n且m和n都是自然數(shù),按照一定順序排成一列,叫做...
    伍帆閱讀 5,044評(píng)論 6 10
  • 最近看新聞,也不算是“新”聞了吧,最近有關(guān)校園貸的紛爭漸多,連我這個(gè)局外人都明顯感受到了異樣的氣息。 如今又是一則...
    化濁閱讀 357評(píng)論 0 0
  • 假如有一天我可以去一個(gè)我最想去的地方。我會(huì)找到那片最美的海,坐在海灘上。靜靜地聆聽海浪輕涌的聲音,凝望這片神秘而迷...
    薄荷糖味的夏天閱讀 121評(píng)論 0 0
  • “胡琴咿咿啞啞拉著,在萬盞燈的夜晚,拉過來拉過去,說不盡的蒼涼的故事——不問也罷!……”這是故事的開頭,亦是故事的...
    畫歌Echo閱讀 1,102評(píng)論 0 1