題目:乙個長度為n的陣列a[0],a[1],...,a[n-1]。現在更新陣列的各個元素,即a[0]變為a[1]到a[n-1]的積,a[1]變為a[0]和a[2]到a[n-1]的積,...,a[n-1]為a[0]到a[n-2]的積(就是除掉當前元素,其他所有元素的積)。
要求:具有線性複雜度,且不能使用除法運算子。
#include執行介面如下:"stdafx.h
"#include
using
namespace
std;
void
printarray(
int*a,
intlength)
cout
<<
endl;}//
陣列元素的值為其他所有元素的累積
void
updatearraynumber(
int*a,
intlength)
int*accumulate =
newint
[length];
accumulate[
0] = 1;
for(
inti =
1; i < length; i++
)
inttmp = 1;
for(
inti = length -
2; i >=
0; i--
)
for(
inti =
0; i < length; i++
)
delete accumulate;
}int
_tmain(
intargc, _tchar*
argv)
;
intlength =
sizeof
(a)/
sizeof
(a[0
]); cout
<<
"before: ";
printarray(a, length);
updatearraynumber(a, length);
cout
<<
"after: ";
printarray(a, length);
cout
<<
endl;
return0;
}
刪除線性表中所有值為x的陣列元素
刪除線性表中所有值為x的陣列元素。比如一串數字值為 1,2,3,2,4,5,2,6,2 刪除值為2的元素 這個問題並不難但煩人的是要進行資料的覆蓋!那麼如果對從前往後的每個值為x的數進行覆蓋 事情就會變成這樣 1 2 3 2 4 5 2 6 2 1 3 2 4 5 2 6 2 1 3 4 5 2 6...
刪除單鏈表中所有值為x的元素
刪除所有值為x的單鏈表中的元素 首先,我們先考慮第一種情況,就是說值刪除第乙個值為x的元素,這個比較簡單,只需要挨個比較x和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下...
和為定值的兩個陣列元素
在陣列中找到和為定值的兩個數,返回陣列下標。這個題目就是乙個排序的問題,但是不能改變陣列,用快排的方式儲存陣列的索引值即可,上 include include include include using namespace std void quicksort index int arr,int i...