{ "data": { "question": { "questionId": "4134", "questionFrontendId": "3757", "categoryTitle": "Algorithms", "boundTopicId": 3838840, "title": "Number of Effective Subsequences", "titleSlug": "number-of-effective-subsequences", "content": "
You are given an integer array nums.
The strength of the array is defined as the bitwise OR of all its elements.
\n\nA subsequence is considered effective if removing that subsequence strictly decreases the strength of the remaining elements.
\n\nReturn the number of effective subsequences in nums. Since the answer may be large, return it modulo 109 + 7.
The bitwise OR of an empty array is 0.
\n\n\n
Example 1:
\n\nInput: nums = [1,2,3]
\n\nOutput: 3
\n\nExplanation:
\n\n1 OR 2 OR 3 = 3.[1, 3]: The remaining element [2] has a Bitwise OR of 2.[2, 3]: The remaining element [1] has a Bitwise OR of 1.[1, 2, 3]: The remaining elements [] have a Bitwise OR of 0.Example 2:
\n\nInput: nums = [7,4,6]
\n\nOutput: 4
\n\nExplanation:
\n\n7 OR 4 OR 6 = 7.[7]: The remaining elements [4, 6] have a Bitwise OR of 6.[7, 4]: The remaining element [6] has a Bitwise OR of 6.[7, 6]: The remaining element [4] has a Bitwise OR of 4.[7, 4, 6]: The remaining elements [] have a Bitwise OR of 0.Example 3:
\n\nInput: nums = [8,8]
\n\nOutput: 1
\n\nExplanation:
\n\n8 OR 8 = 8.[8, 8] is effective since removing it leaves [] which has a Bitwise OR of 0.Example 4:
\n\nInput: nums = [2,2,1]
\n\nOutput: 5
\n\nExplanation:
\n\n2 OR 2 OR 1 = 3.[1]: The remaining elements [2, 2] have a Bitwise OR of 2.[2, 1] (using nums[0], nums[2]): The remaining element [2] has a Bitwise OR of 2.[2, 1] (using nums[1], nums[2]): The remaining element [2] has a Bitwise OR of 2.[2, 2]: The remaining element [1] has a Bitwise OR of 1.[2, 2, 1]: The remaining elements [] have a Bitwise OR of 0.\n
Constraints:
\n\n1 <= nums.length <= 1051 <= nums[i] <= 106给你一个整数数组 nums。
数组的 强度 定义为数组中所有元素的 按位或 (Bitwise OR) 。
\n\n如果移除某个 子序列 会使剩余数组的 强度严格减少 ,那么该子序列被称为 有效子序列 。
\n\n返回数组中 有效子序列 的数量。由于答案可能很大,请返回结果对 109 + 7 取模后的值。
子序列 是一个 非空 数组,它是由另一个数组删除一些(或不删除任何)元素,并且不改变剩余元素的相对顺序得到的。
\n\n空数组的按位或为 0。
\n\n\n\n
示例 1:
\n\n输入: nums = [1,2,3]
\n\n输出: 3
\n\n解释:
\n\n1 OR 2 OR 3 = 3。[1, 3]:剩余元素 [2] 的按位或为 2。[2, 3]:剩余元素 [1] 的按位或为 1。[1, 2, 3]:剩余元素 [] 的按位或为 0。示例 2:
\n\n输入: nums = [7,4,6]
\n\n输出: 4
\n\n解释:
\n\n7 OR 4 OR 6 = 7。[7]:剩余元素 [4, 6] 的按位或为 6。[7, 4]:剩余元素 [6] 的按位或为 6。[7, 6]:剩余元素 [4] 的按位或为 4。[7, 4, 6]:剩余元素 [] 的按位或为 0。示例 3:
\n\n输入: nums = [8,8]
\n\n输出: 1
\n\n解释:
\n\n8 OR 8 = 8。[8, 8] 是有效的,因为移除它会使剩余数组为空,按位或为 0。示例 4:
\n\n输入: nums = [2,2,1]
\n\n输出: 5
\n\n解释:
\n\n2 OR 2 OR 1 = 3。[1]:剩余元素 [2, 2] 的按位或为 2。[2, 1](包括 nums[0] 和 nums[2]):剩余元素 [2] 的按位或为 2。[2, 1](包括 nums[1] 和 nums[2]):剩余元素 [2] 的按位或为 2。[2, 2]:剩余元素 [1] 的按位或为 1。[2, 2, 1]:剩余元素 [] 的按位或为 0。\n\n
提示:
\n\n1 <= nums.length <= 1051 <= nums[i] <= 106\\u7248\\u672c\\uff1a \\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528 \\u4e3a\\u4e86\\u4f7f\\u7528\\u65b9\\u4fbf\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8\\u5bfc\\u5165\\u3002<\\/p>\"],\"java\":[\"Java\",\" \\u7248\\u672c\\uff1a \\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u88ab\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u5305\\u542b Pair \\u7c7b: https:\\/\\/docs.oracle.com\\/javase\\/8\\/javafx\\/api\\/javafx\\/util\\/Pair.html <\\/p>\"],\"python\":[\"Python\",\" \\u7248\\u672c\\uff1a \\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u5e38\\u7528\\u5e93\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8 \\u5bfc\\u5165\\uff0c\\u5982\\uff1aarray<\\/a>, bisect<\\/a>, collections<\\/a>\\u3002\\u5982\\u679c\\u60a8\\u9700\\u8981\\u4f7f\\u7528\\u5176\\u4ed6\\u5e93\\u51fd\\u6570\\uff0c\\u8bf7\\u81ea\\u884c\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u6ce8\\u610f Python 2.7 \\u5df2\\u4e0d\\u518d\\u7ef4\\u62a4<\\/a>\\u3002 \\u5982\\u60f3\\u4f7f\\u7528\\u6700\\u65b0\\u7248\\u7684Python\\uff0c\\u8bf7\\u9009\\u62e9Python 3\\u3002<\\/p>\"],\"c\":[\"C\",\" \\u7248\\u672c\\uff1a \\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528 \\u4e3a\\u4e86\\u4f7f\\u7528\\u65b9\\u4fbf\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u5982\\u60f3\\u4f7f\\u7528\\u54c8\\u5e0c\\u8868\\u8fd0\\u7b97, \\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 uthash<\\/a>\\u3002 \\\"uthash.h\\\"\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5bfc\\u5165\\u3002\\u8bf7\\u770b\\u5982\\u4e0b\\u793a\\u4f8b:<\\/p>\\r\\n\\r\\n 1. \\u5f80\\u54c8\\u5e0c\\u8868\\u4e2d\\u6dfb\\u52a0\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n 2. \\u5728\\u54c8\\u5e0c\\u8868\\u4e2d\\u67e5\\u627e\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n 3. \\u4ece\\u54c8\\u5e0c\\u8868\\u4e2d\\u5220\\u9664\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n C# 13<\\/a> \\u8fd0\\u884c\\u5728 .NET 9 \\u4e0a<\\/p>\"],\"javascript\":[\"JavaScript\",\" \\u7248\\u672c\\uff1a \\u60a8\\u7684\\u4ee3\\u7801\\u5728\\u6267\\u884c\\u65f6\\u5c06\\u5e26\\u4e0a lodash.js<\\/a> \\u5e93\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5305\\u542b\\u3002<\\/p>\\r\\n\\r\\n \\u60a8\\u53ef\\u4f7f\\u7528 datastructures-js <\\/a>\\u5e93\\u6240\\u63d0\\u4f9b\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u3002\\u5bf9\\u4e8e Binary Search Tree, Trie \\u548c Graph\\uff0c\\u56e0\\u5176\\u53d8\\u91cf\\u547d\\u540d\\u4e0e\\u4e00\\u4e9b\\u9898\\u76ee\\u51b2\\u7a81\\uff0c\\u60a8\\u9700\\u8981\\u5728\\u4f7f\\u7528\\u65f6\\u624b\\u52a8\\u5bfc\\u5165\\u5b83\\u4eec\\uff0c\\u5982\\u4e0b\\u6240\\u793a\\u3002<\\/p>\\r\\n\\r\\n \\r\\n \\u4f7f\\u7528 \\u4e00\\u4e9b\\u5e38\\u7528\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u5df2\\u5728 Algorithms \\u6a21\\u5757\\u4e2d\\u63d0\\u4f9b\\uff1ahttps:\\/\\/www.rubydoc.info\\/github\\/kanwei\\/algorithms\\/Algorithms<\\/p>\"],\"swift\":[\"Swift\",\" \\u7248\\u672c\\uff1a \\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 swift-algorithms 1.2.0<\\/a>\\uff0cswift-collections 1.1.4<\\/a> \\u548c swift-numerics 1.0.2<\\/a><\\/p>\\r\\n\\r\\n \\u6211\\u4eec\\u901a\\u5e38\\u4fdd\\u8bc1\\u66f4\\u65b0\\u5230 Apple\\u653e\\u51fa\\u7684\\u6700\\u65b0\\u7248Swift<\\/a>\\u3002\\u5982\\u679c\\u60a8\\u53d1\\u73b0Swift\\u4e0d\\u662f\\u6700\\u65b0\\u7248\\u7684\\uff0c\\u8bf7\\u8054\\u7cfb\\u6211\\u4eec\\uff01\\u6211\\u4eec\\u5c06\\u5c3d\\u5feb\\u66f4\\u65b0\\u3002<\\/p>\"],\"golang\":[\"Go\",\" \\u7248\\u672c\\uff1a \\u652f\\u6301 https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods@v1.18.1<\\/a> \\u548c https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods\\/v2@v2.0.0-alpha<\\/a> \\u7b2c\\u4e09\\u65b9\\u5e93\\u3002<\\/p>\"],\"python3\":[\"Python3\",\" \\u7248\\u672c\\uff1a \\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u5e38\\u7528\\u5e93\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8 \\u5bfc\\u5165\\uff0c\\u5982array<\\/a>, bisect<\\/a>, collections<\\/a>\\u3002 \\u5982\\u679c\\u60a8\\u9700\\u8981\\u4f7f\\u7528\\u5176\\u4ed6\\u5e93\\u51fd\\u6570\\uff0c\\u8bf7\\u81ea\\u884c\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u5982\\u9700\\u4f7f\\u7528 Map\\/TreeMap \\u6570\\u636e\\u7ed3\\u6784\\uff0c\\u60a8\\u53ef\\u4f7f\\u7528 sortedcontainers<\\/a> \\u5e93\\u3002<\\/p>\"],\"scala\":[\"Scala\",\" \\u7248\\u672c\\uff1a \\u7248\\u672c\\uff1a \\u7248\\u672c\\uff1a \\u652f\\u6301 crates.io \\u7684 rand<\\/a>\\u3001regex<\\/a> \\u548c itertools<\\/a><\\/p>\"],\"php\":[\"PHP\",\" With bcmath module.<\\/p>\"],\"typescript\":[\"TypeScript\",\" TypeScript 5.7.3<\\/p>\\r\\n\\r\\n Compile Options: --alwaysStrict --strictBindCallApply --strictFunctionTypes --target ES2024<\\/p>\\r\\n\\r\\n lodash.js<\\/a> \\u5e93\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5305\\u542b\\u3002<\\/p>\\r\\n\\r\\n \\u60a8\\u53ef\\u4f7f\\u7528 datastructures-js <\\/a>\\u5e93\\u6240\\u63d0\\u4f9b\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u3002\\u5bf9\\u4e8e Binary Search Tree, Trie \\u548c Graph\\uff0c\\u56e0\\u5176\\u53d8\\u91cf\\u547d\\u540d\\u4e0e\\u4e00\\u4e9b\\u9898\\u76ee\\u51b2\\u7a81\\uff0c\\u60a8\\u9700\\u8981\\u5728\\u4f7f\\u7528\\u65f6\\u624b\\u52a8\\u5bfc\\u5165\\u5b83\\u4eec\\uff0c\\u5982\\u4e0b\\u6240\\u793a\\u3002<\\/p>\\r\\n\\r\\n \\r\\n Racket CS<\\/a> v8.15<\\/p>\\r\\n\\r\\n \\u4f7f\\u7528 #lang racket<\\/p>\\r\\n\\r\\n \\u5df2\\u9884\\u5148 (require data\\/gvector data\\/queue data\\/order data\\/heap). \\u82e5\\u9700\\u4f7f\\u7528\\u5176\\u5b83\\u6570\\u636e\\u7ed3\\u6784\\uff0c\\u53ef\\u81ea\\u884c require\\u3002<\\/p>\"],\"erlang\":[\"Erlang\",\"Erlang\\/OTP 26\"],\"elixir\":[\"Elixir\",\"Elixir 1.17 with Erlang\\/OTP 26\"],\"dart\":[\"Dart\",\" Dart 3.2\\u3002\\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 collection<\\/a> \\u5305<\\/p>\\r\\n\\r\\n \\u60a8\\u7684\\u4ee3\\u7801\\u5c06\\u4f1a\\u88ab\\u4e0d\\u7f16\\u8bd1\\u76f4\\u63a5\\u8fd0\\u884c<\\/p>\"],\"cangjie\":[\"Cangjie\",\" \\u7248\\u672c\\uff1a1.0.0 LTS (cjnative)<\\/p>\\r\\n\\r\\n \\u7f16\\u8bd1\\u53c2\\u6570\\uff1a \\u5feb\\u901f\\u5165\\u95e8\\u8bf7\\u67e5\\u9605\\u300c\\u4ed3\\u9889\\u7f16\\u7a0b\\u8bed\\u8a00\\u5f00\\u53d1\\u6307\\u5357\\u300d<\\/a><\\/p>\"]}",
"book": null,
"isSubscribed": false,
"isDailyQuestion": false,
"dailyRecordStatus": null,
"editorType": "CKEDITOR",
"ugcQuestionId": null,
"style": "LEETCODE",
"exampleTestcases": "[1,2,3]\n[7,4,6]\n[8,8]\n[2,2,1]",
"__typename": "QuestionNode"
}
}
}clang 19<\\/code> \\u91c7\\u7528\\u6700\\u65b0 C++ 23 \\u6807\\u51c6\\uff0c\\u5e76\\u4f7f\\u7528 GCC 14 \\u63d0\\u4f9b\\u7684 libstdc++<\\/code>\\u3002<\\/p>\\r\\n\\r\\n-O2<\\/code> \\u7ea7\\u4f18\\u5316\\uff0c\\u5e76\\u63d0\\u4f9b -gline-tables-only<\\/code> \\u53c2\\u6570\\u3002AddressSanitizer<\\/a> \\u4e5f\\u88ab\\u5f00\\u542f\\u6765\\u68c0\\u6d4b out-of-bounds<\\/code> \\u548c use-after-free<\\/code> \\u9519\\u8bef\\u3002<\\/p>\\r\\n\\r\\nOpenJDK 25<\\/code>\\u3002\\u4f7f\\u7528\\u7f16\\u8bd1\\u53c2\\u6570 --enable-preview --release 25<\\/code><\\/p>\\r\\n\\r\\nPython 2.7.18<\\/code><\\/p>\\r\\n\\r\\nGCC 14<\\/code>\\uff0c\\u91c7\\u7528 GNU11 \\u6807\\u51c6\\u3002<\\/p>\\r\\n\\r\\n-O2<\\/code> \\u7ea7\\u4f18\\u5316\\uff0c\\u5e76\\u63d0\\u4f9b -g1<\\/code> \\u53c2\\u6570\\u3002 AddressSanitizer<\\/a> \\u4e5f\\u88ab\\u5f00\\u542f\\u6765\\u68c0\\u6d4b out-of-bounds<\\/code> \\u548c use-after-free<\\/code> \\u9519\\u8bef\\u3002<\\/p>\\r\\n\\r\\n\\r\\nstruct hash_entry {\\r\\n int id; \\/* we'll use this field as the key *\\/\\r\\n char name[10];\\r\\n UT_hash_handle hh; \\/* makes this structure hashable *\\/\\r\\n};\\r\\n\\r\\nstruct hash_entry *users = NULL;\\r\\n\\r\\nvoid add_user(struct hash_entry *s) {\\r\\n HASH_ADD_INT(users, id, s);\\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\\r\\n\\r\\n\\r\\nstruct hash_entry *find_user(int user_id) {\\r\\n struct hash_entry *s;\\r\\n HASH_FIND_INT(users, &user_id, s);\\r\\n return s;\\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\\r\\n\\r\\n\\r\\nvoid delete_user(struct hash_entry *user) {\\r\\n HASH_DEL(users, user); \\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\"],\"csharp\":[\"C#\",\"Node.js 22.14.0<\\/code><\\/p>\\r\\n\\r\\n--harmony<\\/code> \\u6807\\u8bb0\\u6765\\u5f00\\u542f \\u65b0\\u7248ES6\\u7279\\u6027<\\/a>\\u3002<\\/p>\\r\\n\\r\\n\\r\\nconst {\\r\\n BinarySearchTree, BinarySearchTreeNode, AvlTree, AvlTreeNode,\\r\\n Trie, TrieNode,\\r\\n Graph, DirectedGraph,\\r\\n} = require('datastructures-js');\\r\\n<\\/pre>\\r\\n<\\/p>\"],\"ruby\":[\"Ruby\",\"Ruby 3.2<\\/code> \\u6267\\u884c<\\/p>\\r\\n\\r\\nSwift 6.0<\\/code><\\/p>\\r\\n\\r\\nGo 1.23<\\/code><\\/p>\\r\\n\\r\\nPython 3.11<\\/code><\\/p>\\r\\n\\r\\nScala 3.3.1<\\/code><\\/p>\"],\"kotlin\":[\"Kotlin\",\"Kotlin 2.1.10<\\/code><\\/p>\"],\"rust\":[\"Rust\",\"rust 1.88.0<\\/code>\\uff0c\\u4f7f\\u7528 edition 2024\\u3002<\\/p>\\r\\n\\r\\nPHP 8.2<\\/code>.<\\/p>\\r\\n\\r\\n\\r\\nimport {\\r\\n BinarySearchTree, BinarySearchTreeNode, AvlTree, AvlTreeNode,\\r\\n Trie, TrieNode,\\r\\n Graph, DirectedGraph,\\r\\n} from 'datastructures-js';\\r\\n<\\/pre>\\r\\n<\\/p>\"],\"racket\":[\"Racket\",\"-O2 --disable-reflection<\\/code><\\/p>\\r\\n\\r\\n