【Leetcode刷題】1. 兩數之和

https://leetcode-cn.com/problems/two-sum/

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。

你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因爲 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

--------------------------------------------------------------------------------------------

此題可用暴力法,算法複雜度O(n^2),變量數組,尋找兩數和爲target

舉一反三?

總結:

1)編譯運行時,報執行出錯

runtime error: load of null pointer of type 'int' (__Serializer__.c)

分析原因:

在調用函數時,函數返回值本應爲指針,但返回了局部變量,造成類型不匹配會報此錯誤。如果函數返回的指針地址指向函數內的局部變量,在函數退出時,該變量的存儲空間會被銷燬,此時去訪問該地址就會出現這個錯誤

解決方法:

    a.將返回值的類型修改爲指針,或者直接爲該返回值定義爲使用malloc分配空間的指針變量;
    b.將該變量使用static修飾 , static修飾的局部變量作用域不變 但是聲明週期延長到程序結束 即該變量在函數退出後仍然存在
    c.使用全局變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章