如何建設dj網(wǎng)站seo 工具推薦
目錄
題目:劍指 Offer 56 - II. 數(shù)組中數(shù)字出現(xiàn)的次數(shù) II - 力扣(Leetcode)
題目的接口:
解題思路:
代碼:
過啦!!!
題目:劍指 Offer 57. 和為s的兩個數(shù)字 - 力扣(Leetcode)
題目的接口:
解題思路:
代碼:
過啦!!!
題目:劍指 Offer 57 - II. 和為s的連續(xù)正數(shù)序列 - 力扣(Leetcode)
題目的接口:
解題思路:
代碼:
過啦!!!
寫在最后:
題目:劍指 Offer 56 - II. 數(shù)組中數(shù)字出現(xiàn)的次數(shù) II - 力扣(Leetcode)
?
題目的接口:
class Solution {
public:int singleNumber(vector<int>& nums) {}
};
解題思路:
這道題我水平有限,
我就直接用哈希表計數(shù),
然后再遍歷整個哈希表,找出只出現(xiàn)一次的數(shù)即可,
下面是代碼:
代碼:
class Solution {
public:int singleNumber(vector<int>& nums) {unordered_map<int, int> mp;for(auto& e : nums) mp[e]++; //用哈希表存for(auto k : mp) if(k.second == 1) return k.first; //返回只有一個的值return 1;}
};
過啦!!!
題目:劍指 Offer 57. 和為s的兩個數(shù)字 - 力扣(Leetcode)
?
題目的接口:
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {}
};
解題思路:
這道題我一開始用的是雙指針遍歷整個數(shù)組,
然后計算結果,
然后我就超時了,
這道題由于他是一個有序數(shù)組,
所以我們還有一種雙指針的做法,
就是兩段逼近的雙指針思想,
所以我就再用了一次雙指針,
結論:
如果是有序數(shù)組的話,兩端逼近的雙指針效率
比從起點開始的雙指針更高。
下面是代碼:
代碼:
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> v;//兩段逼近的雙指針int l = 0, r = nums.size() - 1;while(l < r) {if(nums[l] + nums[r] > target) r--;else if(nums[l] + nums[r] < target) l++;else { //如果找到了v.push_back(nums[l]);v.push_back(nums[r]);return v;}}return v;}
};
過啦!!!
題目:劍指 Offer 57 - II. 和為s的連續(xù)正數(shù)序列 - 力扣(Leetcode)
?
題目的接口:
class Solution {
public:vector<vector<int>> findContinuousSequence(int target) {}
};
解題思路:
這道題的思路比較明顯,
我們可以用滑動窗口去做,
運用滑動窗口的思想實現(xiàn),然后將每一個符合條件的值
放進二維數(shù)組里面,最后返回即可。
下面是代碼:
代碼:
class Solution {
public:vector<vector<int>> findContinuousSequence(int target) {vector<vector<int>> vv;//滑動窗口的左右邊界int l = 1, r = 1;int sum = 0;//因為 5 + 6 一定大于 9,所以我們的邊界可以取到(target / 2 + 1)while(l <= target / 2 + 1) {if(sum < target) { //如果值小了,更新右邊界sum += r++;}else if(sum > target) { //如果值大了,更新左邊界sum -= l++;}else { //如果值等于target,存進二維數(shù)組,然后更新一下邊界,不然會死循環(huán)vector<int> v;for(int i = l; i < r; i++) v.push_back(i);vv.push_back(v);//更新左邊界sum -= l++;}}return vv;}
};
過啦!!!
?
寫在最后:
以上就是本篇文章的內(nèi)容了,感謝你的閱讀。
如果喜歡本文的話,歡迎點贊和評論,寫下你的見解。
如果想和我一起學習編程,不妨點個關注,我們一起學習,一同成長。
之后我還會輸出更多高質量內(nèi)容,歡迎收看