c_cpp 给定一组正负整数,重新排列它,使得一端为正整数,另一端为负整数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 给定一组正负整数,重新排列它,使得一端为正整数,另一端为负整数。相关的知识,希望对你有一定的参考价值。
// without keep the order
void rearrange(int A[], int N) {
int low = 0, high = N-1;
while(low < high) {
while(low < N && A[low] < 0) low++;
if(low == N) return;
while(high >= 0 && A[high] > 0) high--;
if(high < 0) return;
swap(A[low], A[high]);
low++;
high--;
}
}
// keep the order
void rearrange(int A[], int N) {
int *B = new int[N];
int j=0;
for(int i=0; i<N; i++)
if(A[i] < 0) B[j++] = A[i];
for(int i=0; i<N; i++)
if(A[i] > 0) B[j++] = A[i];
for(int i=0; i<N; i++)
A[i] = B[i];
delete [] B;
}
以上是关于c_cpp 给定一组正负整数,重新排列它,使得一端为正整数,另一端为负整数。的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 给定一组数字,返回所有可能的排列。例如,[1,2,3]具有以下排列:[1,2,3],[1,3,2],[2
第71题每组数据给定一棵二叉搜索树,请按中序遍历将其重新排列为一棵递增顺序搜索树
c_cpp 给定一组单词,返回给定集合中的anagrams集合
剑指Offer8:将数组排列成最大数
洗牌算法分析
c_cpp 给定一个整数数组,找到三元组,使得a ^ 2 + b ^ 2 = c ^ 2。