leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/
題解
遍歷數(shù)組,將數(shù)組中每個(gè)數(shù)字 n 作為下標(biāo),將數(shù)組中對(duì)應(yīng)位置的符號(hào)位置 1。最后遍歷修改后的數(shù)組,如果符號(hào)位是 0 的話,說(shuō)明該下標(biāo)沒(méi)有出現(xiàn)過(guò)。
注意運(yùn)算符優(yōu)先級(jí)。
class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {List<Integer> result = new ArrayList<>();for (int n : nums) {nums[(n & ~(1 << 31)) % nums.length] |= 1 << 31;}for (int i = 1; i <= nums.length; i++) {if (nums[i % nums.length] >>> 31 == 0) result.add(i);}return result;} }總結(jié)
以上是生活随笔為你收集整理的leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: leetcode 720. Longes
- 下一篇: leetcode 721. Accoun