int
*presum
(int
*nums,
int numsize,
int*returnsize)
int i;
int*brr =
(int*)
malloc
(numssize*
sizeof
(int))
;//用於存放字首和
brr[0]
= nums[0]
;//第乙個值不需要相加
for(i =
1; i < numsize; i++
)*returnsize = i;
return brr;
}
//該演算法的時間複雜度為o(n),空間複雜度o(n).
法二:利用原陣列儲存字首和
int
*presum2
(int
* nums,
int numssize,
int* returnsize)
該演算法的時間複雜度為o(n),空間複雜度為o(1).
int
arrpairs
(int
* nums,
int numssize)}}
return tmp;
}
時間複雜度為o(n^2),o(1).
int
*shuffle
(int
* nums,
int numssize,
int* returnsize)
*returnsize = numssize;
return brr;
}
該演算法的時間複雜度為o(n),空間複雜度為o(n).
int
xoroperation
(int n,
int start)
return tmp;
}
該演算法的時間複雜度為o(n),空間複雜度為o(1).
int
game
(int
* guess,
int guesssize,
int*answer,
int answersize)
return sum;
}
int
mincount
(int
* arr,
int n)
return num;
}
int
findrepeatnumber
(int
* nums,
int numssize)
}return-1
;}
該演算法時間複雜度為o(n^2),空間複雜度為o(1).
法二:根據資料取值範圍特徵(0~n-1), 可以讓每個資料存放在和本身值相同的下標, 例如數字 2 存放到 2 下標, 構造乙個雜湊表. 在存放的過程中, 如果下標中存放的資料和當前相同則找到.
**實現:
int
findrepeatnumber
(int
* nums,
int numssize)
else
]return-1
;}
該演算法的時間複雜度為o(n),空間複雜度為o(1).
int
sumoddlengthsubarrays
(int
*arr,
int arrsize)}}
return sum;
}
法一:利用c語言庫函式qsort(快速排序)進行排序
**實現:
int
int_cmp
(const
void
* vp1,
const
void
* vp2)
void
quicksort
(int
*arr,
int len)
法二:利用c++的stl中的sort進行排序
#include
using namespace std;
intmain()
;sort
(arr,arr+
sizeof
(arr)
/sizeof
(arr[0]
));for
(int i =
0; i <
sizeof
(arr)
/sizeof
(arr[0]
); i++
)return0;
}
C 動態記憶體和動態陣列
全域性物件在程式啟動時分配,在程式結束時銷毀。區域性自動物件,當我們進入其定義所在的程式塊時被建立,在離開塊時銷毀。區域性 static 物件在第一次使用前分配,在程式結束時銷毀 靜態記憶體用來儲存區域性static物件,類static 資料成員,以及定義在任何函式之外的變數。棧記憶體用來儲存定義在...
陣列的動態記憶體分配
1.已知陣列的第二維進行動態記憶體分配 方式 利用陣列指標 include using namespace std intmain int argc,char ar delete p 釋放記憶體 return0 2.1已知陣列的第一維進行動態記憶體分配 方式 利用指標陣列 include using...
陣列的動態記憶體分配(new delete)
假設我們要為乙個字元陣列 乙個有 20 個字元的字串 分配記憶體,我們可以使用上面例項中的語法來為陣列動態地分配記憶體,如下所示 char pvalue null 初始化為 null 的指標 pvalue newchar 20 為變數請求記憶體要刪除我們剛才建立的陣列,語句如下 delete pva...