两数之和 C语言
給定一個整數(shù)數(shù)組 nums 和一個目標值 target,請你在該數(shù)組中找出和為目標值的那 兩個 整數(shù),并返回他們的數(shù)組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數(shù)組中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
代碼
先把代碼貼上,這是最笨的一個方法,這也是我剛看見這個問題的時候首先想到的解決方法但是,在我做這道題目的時候總是提交失敗,前面有錯誤:SerializerHelper.inl:10:10: runtime error: load of null pointer of type ‘const int’
這個錯誤我一直沒有辦法解決但是在題目的評論中我看到了其他人也用C語言解決這個問題,看到了陶小丸子這位網(wǎng)友的解決代碼,實現(xiàn)方法是和我一樣的,但是有一個地方是有差別的。
對于這樣的錯誤提示:load of null pointer of type 'const int’的處理方法:
在調(diào)用函數(shù)時,如果返回值如果是一個常量則沒問題。如果返回值若為指針則可能會出現(xiàn)該錯誤,假如返回的指針地址指向函數(shù)內(nèi)的局部變量,在函數(shù)退出時,該變量的存儲空間會被銷毀,此時去訪問該地址就會出現(xiàn)這個錯誤。
解決辦法有以下三種:
1.返回的指針使用malloc分配空間2.將該變量使用static修飾 static修飾的內(nèi)部變量作用域不變 但是聲明周期延長到程序結束 即該變量在函數(shù)退出后仍然存在3.使用全局變量我原來寫出來的代碼是這個樣子的
int a[2]={0};她寫的是這樣的
static int a[2]={0};C語言中的static
這樣子,我就在網(wǎng)上查找了有關static的資料,感覺C語言中的static 詳細分析這篇文章寫講解的很詳細我就不細說了。感興趣的可以去原文看。
這個算法題有好多種方式,大家有好的算法一起討論。
總結
- 上一篇: 几种常见的用于拟合的分布
- 下一篇: Java微服务篇4——Elastic s