程序员面试金典 - 面试题 17.04. 消失的数字(数学/位运算)
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 17.04. 消失的数字(数学/位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
數組 nums 包含從0到n的所有整數,但其中缺了一個。
請編寫代碼找出那個缺失的整數。你有辦法在O(n)時間內完成嗎?
注意:本題相對書上原題稍作改動 示例 1: 輸入:[3,0,1] 輸出:2示例 2: 輸入:[9,6,4,2,3,5,7,0,1] 輸出:8來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/missing-number-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 數學
class Solution { public:int missingNumber(vector<int>& nums) {int i, sum = 0, n = nums.size();for(i = 0; i < nums.size(); ++i)sum += nums[i];return n*(n+1)/2-sum;} };2.2 位運算
class Solution { public:int missingNumber(vector<int>& nums) {int XOR = 0;for(int i = 0; i < nums.size(); ++i)XOR ^= i^nums[i];XOR ^= nums.size();// 0,1,...n, nums[0],...nums[n-1]// 出現兩次的異或抵消為0,出現一次的就是答案return XOR;} }; 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 17.04. 消失的数字(数学/位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1377. T 秒后青
- 下一篇: LeetCode 733. 图像渲染(D