A
LeetCode:
88. Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
The number of elements initialized in nums1 and nums2 are m and n respectively.
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
Example:
Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3Output: [1,2,2,3,5,6]
本體仍然為一道雙指針的題目悬垃,但初始思路仍然是選擇合并后再排序为障,效率過低祖屏。于是看了寫別人的題解評論扬虚,改用從尾部至頭部的順序遍歷橘券,選大值放入——原因在于原數(shù)組末位置為0多艇,巧妙肠虽。
我的代碼:
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
if(nums2.empty()){return;}
vector<int>::iterator i, j, k = nums1.begin() + m + n - 1;
for(i = nums1.begin() + m - 1, j = nums2.begin() + n - 1;
i >= nums1.begin() - 1, j >= nums2.begin() - 1,
k >= nums1.begin();) {
if(j < nums2.begin()) {break;}
if(i < nums1.begin()) {
for(; j >= nums2.begin(); j--, k--) {
*k = *j;
}
break;
}
if(*i > *j) {*k = *i; i--;k--;} else {*k = *j; j--;k--;}
}
}
};
運行結果:
Runtime: 4 ms, faster than 96.81% of C++ online submissions for Merge Sorted Array.
Memory Usage: 8.9 MB, less than 47.74% of C++ online submissions for Merge Sorted Array.
運行速度較好醉者,但空間消耗較大刽辙,應該是for
循環(huán)嵌套的緣故窥岩。
他人的精簡版代碼:
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int p=0;
p=m+n-1;
m--;n--;
for(int i=p;i>=0;i--)
{
if(m<0){nums1[i]=nums2[n];n--;}
else if(n<0) {return;}
else if(nums1[m]>nums2[n])
{
nums1[i]=nums1[m];
m--;
}
else
{
nums1[i]=nums2[n];
n--;
}
}
}
};
最大的不同之處在于:```for```循環(huán)中,我設定的變量值過多宰缤,調(diào)整的靈活性較低颂翼;而該作者的代碼減少了變量值的更新,可以較靈活地更改功能慨灭。
R
Tempted to cheat on a written exam? Artificial intelligence is 90% certain to nab you朦乏!
本周的文章主題為AI能夠較準確地識別書面上的考試作弊行為。
- 研究小組:DIKU-DABAI (Danish Center for Big Data Analytics driven Innovation)氧骤,由Stephen Alstrup教授領導呻疹。
- 方法:利用了孿生神經(jīng)網(wǎng)絡來區(qū)分兩份文本的寫作風格。
- 訓練過程:對該孿生神經(jīng)網(wǎng)絡進行大量訓練以學習其寫作風格筹陵,再學生每次提交作業(yè)時诲宇,會將其所提交的內(nèi)容與以往提交的作業(yè)相比較,并返回一個能夠顯示相似程度的百分比惶翻,以體現(xiàn)寫作風格的相似性姑蓝。此方法能夠有效防止代寫等作弊行為~~~
T
本周學習:決策樹
-
決策樹:
決策樹示例(圖源自鏈接) 目的:分類
缺陷:容易出現(xiàn)過擬合
-
過擬合:多項式擬合(想象力過于豐富)
過擬合示例一(圖源自鏈接)
過擬合示例二(圖源自鏈接) 過擬合解決方案:剪枝——提高泛化性能,即減弱過擬合的影響
剪枝:分為預剪枝(生成樹的過程中檢驗節(jié)點)和后剪枝(樹生成后再檢驗節(jié)點)
S
臨近緊張刺激的期末考試纺荧,努力復習ing~
- 復習時遇到的一些小問題:
在派生類的構造函數(shù)中,
1)構造順序為:基類構造-->對象構造-->派生類構造颅筋;
2)初始化列表中不能含有基類的對象構造宙暇。