leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/
題解
遍歷數組,將數組中每個數字 n 作為下標,將數組中對應位置的符號位置 1。最后遍歷修改后的數組,如果符號位是 0 的話,說明該下標沒有出現過。
注意運算符優先級。
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;} }總結
以上是生活随笔為你收集整理的leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 720. Longes
- 下一篇: leetcode 721. Accoun