difficulty:hard
在寫之前先補充一些c++的基本語法
看建構函式發現有find_if這個函式,
void trimlefttrailingspaces(string &input) ));
}
根據網上用法
find_if:根據指定的pred運算條件(以仿函式表示),迴圈查詢[first,last)內的所有元素,找出第乙個令pred運算結果true者。如果找到就返回乙個inputiterator指向該元素,否則就返回迭代器last。
inputiterator find_if(inputiterator first,inputiterator last,predicate pred)
其中的predicate pred除了可以用上面的匿名函式來代替,也可以用函式物件替代
其中函式物件的使用方法如下:
class studentadapter:public unary_functionbool>
//傳入student乙個引數,也可以用binary( , , bool)傳入兩個引數
bool
operator()(const student& student)//過載運算子
};main主函式中:
find_if(admin.begin(),admin.end(),studentadapter("lanzhihui"));
本題目的是找出bst中的兩個放錯位置的節點
主要的方法是利用中序遍歷,找出兩個沒有從小到大放的數,例如某二叉樹中序遍歷之後為1,3,2,4那麼就是3和2是需要交換的節點。
下面是通過的**:
class solution
inorder(root->left);
trees.push_back(root);
inorder(root->right);
}void swap(treenode& firstnode,treenode& secondnode)
void recovertree(treenode* root)
}for (int i = trees.size() - 1; i >0; i--)
}//cout << "before swap:" << firstnode->val << " " << secondnode->val << endl;
swap(*firstnode, *secondnode);
//cout<<"after swap:"<< firstnode->val << " " << secondnode->val << endl;
}};
《演算法設計與分析》第一周作業
標籤 空格分隔 課堂作業 姓名 李 學號 16340114 題目 valid parentheses 題目概要 給定一串只包含 的字串,判斷該字串中的括號是否合法地閉合。思路 發現一對合法的子字串,如 就將該子字串消去,再對修改後的輸入字串進行該操作,直到字串無法繼續進行消去操作,如字串完全被消掉則...
演算法,第一周
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...
系統分析與設計 第一周
解答 軟體工程是應用系統的 規範的 可量化的方法來開發,操作和維護軟體。即工程應用於軟體的方法研究。解答 落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程 現一系列嚴重問題的現象。專案執行超預算 專案執行時間過長 軟體效率很低 軟體質量很差 軟體通常不符合要求 專案難以...