深圳做網(wǎng)站 漢獅網(wǎng)絡(luò)seo合作代理
文章目錄
- 每日一言
- 題目
- 解題思路
- 方法一
- 方法二
- 代碼
- 方法一
- 方法二
- 結(jié)語
每日一言
泉涸,魚相與處于陸,相呴以濕,相濡以沫,不如相忘于江湖。 --莊子·內(nèi)篇·大宗師
題目
題目鏈接:數(shù)組異或操作
給你兩個(gè)整數(shù),n 和 start 。
數(shù)組 nums 定義為:nums[i] = start + 2*i(下標(biāo)從 0 開始)且 n == nums.length 。
請(qǐng)返回 nums 中所有元素按位異或(XOR)后得到的結(jié)果。
示例 1:
輸入:n = 5, start = 0
輸出:8
解釋:數(shù)組 nums 為 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。
“^” 為按位異或 XOR 運(yùn)算符。
示例 2:
輸入:n = 4, start = 3
輸出:8
解釋:數(shù)組 nums 為 [3, 5, 7, 9],其中 (3 ^ 5 ^ 7 ^ 9) = 8.
示例 3:
輸入:n = 1, start = 7
輸出:7
示例 4:
輸入:n = 10, start = 5
輸出:2
提示:
1 <= n <= 1000
0 <= start <= 1000
n == nums.length
解題思路
方法一
按照題目要求,一步一步來
方法二
找規(guī)律,仔細(xì)觀察,n其實(shí)就是你要異或的數(shù)字個(gè)數(shù),start的值就是第一個(gè)被異或的數(shù)字,只要找到第一個(gè)數(shù)字就可以找到剩下要被異或的數(shù)字(仔細(xì)閱讀題目,發(fā)現(xiàn)兩個(gè)相鄰的元素差2),接下來只要挨個(gè)異或一下并返回就OK了~
代碼
方法一
int xorOperation(int n, int start) {int nums[n];//這是一個(gè)變長(zhǎng)數(shù)組int i = 0;int ret = 0;//要返回的數(shù)字//按照題目要求將每個(gè)元素存放在nums數(shù)組中for(i=0;i<n;i++){nums[i] = start + 2*i;}//接下來挨個(gè)異或for(i=0;i<n;i++){ret^=nums[i];}return ret;
}
方法二
int xorOperation(int n, int start) {int i=0;int ret = 0;//要返回的數(shù)字//挨個(gè)異或for(i=start;n>0;i+=2){ret ^= i;n--;}return ret;
}
結(jié)語
請(qǐng)給自己些耐心,一口吃不成胖子。
山外青山樓外樓,莫把百尺當(dāng)盡頭。
保持空杯心態(tài)加油努力吧!
都看到這里啦!真棒(*^▽^*)
可以給作者一個(gè)免費(fèi)的贊贊嗎,這將會(huì)鼓勵(lì)我繼續(xù)創(chuàng)作,謝謝大家
編程小白寫作,如有紕漏或錯(cuò)誤,歡迎指正