国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode:Line 1037: Char 34: runtime error: addition of unsigned offset to 0x502000000090 overflowed

這篇具有很好參考價(jià)值的文章主要介紹了LeetCode:Line 1037: Char 34: runtime error: addition of unsigned offset to 0x502000000090 overflowed。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

錯(cuò)誤情況(一)

錯(cuò)誤信息

在重刷47.全排列II時(shí),寫了如下代碼:

class Solution {
public:
    void dfs(vector<int>& path, unordered_set<int>& st, vector<vector<int>>& res, vector<int>& nums){
        if(path.size() == nums.size()){
            res.push_back(path);
            return;
        }

        for(int i = 0;i < nums.size(); ++ i){
            if(st.find(i) == st.end()){
                if( !i && nums[i] == nums[i - 1] && st.find(i - 1) == st.end()) continue;
                st.insert(i);
                path.push_back(nums[i]);
                dfs(path, st, res, nums);
                path.pop_back();
                st.erase(i);
            }
        }

    }
    vector<vector<int>> permuteUnique(vector<int>& nums) {
        // 對(duì)重復(fù)數(shù)據(jù)進(jìn)行集中處理,而且不可以按照組合的方式去重,復(fù)雜度是階乘,可以使用set去重
        // 去重的一種有效做法是保持?jǐn)?shù)字的相對(duì)次序不變,即第一個(gè)1沒有使用的情況下,其他1不可以使用
        // 只要第一個(gè)1的位置不同,其余1的位置也會(huì)不同
        sort(nums.begin(), nums.end());
        vector<vector<int>> res;
        vector<int> path;
        unordered_set<int> st;

        dfs(path, st, res, nums);
        return res;
    }
};

出現(xiàn)如下錯(cuò)誤信息:

Line 1037: Char 34: runtime error: addition of unsigned offset to 0x502000000090 overflowed to 0x50200000008c (stl_vector.h)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1046:34

錯(cuò)誤定位

通過注釋代碼的方法,定位到錯(cuò)誤的位置在dfs函數(shù)里的if判斷:

if( !i && nums[i] == nums[i - 1] && st.find(i - 1) == st.end()) continue;

錯(cuò)誤原因

當(dāng)i0元素時(shí),會(huì)執(zhí)行nums[i] == nums[i - 1],i - 1為負(fù)數(shù),作為數(shù)組索引是不合法的,因此會(huì)報(bào)如上錯(cuò)誤。換言之,當(dāng)數(shù)組索引是負(fù)數(shù)時(shí),會(huì)出現(xiàn)上述錯(cuò)誤

修改錯(cuò)誤

之所以寫!i,是因?yàn)槲业倪壿嫵鲥e(cuò)的,應(yīng)該寫i != 0 或者i。文章來源地址http://www.zghlxwxcb.cn/news/detail-839955.html

到了這里,關(guān)于LeetCode:Line 1037: Char 34: runtime error: addition of unsigned offset to 0x502000000090 overflowed的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包