LeetCode 2859.计算 K 置位下标对应元素的和:遍历(附Python一行代码版)

这篇具有很好参考价值的文章主要介绍了LeetCode 2859.计算 K 置位下标对应元素的和:遍历(附Python一行代码版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【LetMeFly】2859.计算 K 置位下标对应元素的和:遍历(附Python一行代码版)

力扣题目链接:https://leetcode.cn/problems/sum-of-values-at-indices-with-k-set-bits/

给你一个下标从 0 开始的整数数组 nums 和一个整数 k

请你用整数形式返回 nums 中的特定元素之 ,这些特定元素满足:其对应下标的二进制表示中恰存在 k 个置位。

整数的二进制表示中的 1 就是这个整数的 置位

例如,21 的二进制表示为 10101 ,其中有 3 个置位。

 

示例 1:

输入:nums = [5,10,1,5,2], k = 1
输出:13
解释:下标的二进制表示是: 
0 = 0002
1 = 0012
2 = 0102
3 = 0112
4 = 1002 
下标 1、2 和 4 在其二进制表示中都存在 k = 1 个置位。
因此,答案为 nums[1] + nums[2] + nums[4] = 13 。

示例 2:

输入:nums = [4,3,2,1], k = 2
输出:1
解释:下标的二进制表示是: 
0 = 002
1 = 012
2 = 102
3 = 112
只有下标 3 的二进制表示中存在 k = 2 个置位。
因此,答案为 nums[3] = 1 。

 

提示:

  • 1 <= nums.length <= 1000
  • 1 <= nums[i] <= 105
  • 0 <= k <= 10

方法一:遍历

遍历数组的下标,如果数组下标i的二进制中有k1,则将nums[i]添加到数组中。

  • 时间复杂度 O ( l e n ( n u m s [ i ] ) ) O(len(nums[i])) O(len(nums[i])),数组的最大长度为1000,且内置函数效率很高,暂不考虑log(i)带来的复杂度。
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
class Solution {
public:
    int sumIndicesWithKSetBits(vector<int>& nums, int k) {
        int ans = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (__builtin_popcount(i) == k) {
                ans += nums[i];
            }
        }
        return ans;
    }
};
Python
# from typing import List

class Solution:
    def sumIndicesWithKSetBits(self, nums: List[int], k: int) -> int:
        return sum(nums[i] if bin(i).count('1') == k else 0 for i in range(len(nums)))

同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/135836080文章来源地址https://www.toymoban.com/news/detail-827360.html

到了这里,关于LeetCode 2859.计算 K 置位下标对应元素的和:遍历(附Python一行代码版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ​LeetCode解法汇总1572. 矩阵对角线元素的和

    https://github.com/September26/java-algorithms 给你一个正方形矩阵  mat ,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例  1:   示例  2: 示例 3: 提示: n == mat.length == mat[i].length 1 = n = 100 1 = mat[i][j] = 100  

    2024年02月13日
    浏览(31)
  • 【LeetCode每日一题】——1572.矩阵对角线元素的和

    矩阵 简单 1572.矩阵对角线元素的和 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1: 输入:mat = [[1,2,3],                      [4,5,6],                      [7,

    2024年02月14日
    浏览(43)
  • LeetCode_03Java_1572. 矩阵对角线元素的和

    给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例二 示例三 代码实现

    2024年02月13日
    浏览(38)
  • 【LeetCode 算法】Matrix Diagonal Sum 矩阵对角线元素的和

    给你一个正方形矩阵 mat ,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 n = = m a t . l e n g t h = = m a t [ i ] . l e n g t h 1 = n = 100 1 = m a t [ i ] [ j ] = 100 n == mat.length == mat[i].length\\\\ 1 = n = 100\\\\ 1 = mat[i][j] = 100 n == ma t . l

    2024年02月13日
    浏览(42)
  • Matlab 获取矩阵的行数与列数 计算矩阵内所有元素的和

    有了行数与列数,可以进行对其矩阵所有元素求和 输出结果为 21

    2024年02月15日
    浏览(45)
  • 【LeetCode】每日一题&&两数之和&&寻找正序数组的中位数&&找出字符串中第一个匹配项的下标&&在排序数组中查找元素的第一个和最后一个位置

    ========================================================================= 主页点击直达: 个人主页 我的小仓库: 代码仓库 C语言偷着笑: C语言专栏 数据结构挨打小记: 初阶数据结构专栏 Linux被操作记: Linux专栏 LeetCode刷题掉发记: LeetCode刷题 算法: 算法专栏  C++头疼记: C++专栏 计算机

    2024年02月08日
    浏览(52)
  • 计算两个二维数组arr1和arr2中对应位置元素的商

    代码实现 :一个嵌套循环,用于计算两个二维数组arr1和arr2中对应位置元素的商,并将结果存储在result数组中。首先,定义了一个空数组result用于存储结果。然后,通过两个for循环遍历arr1数组的每一行和每一列。在内层循环中,通过arr1[i][j]和arr2[i][j]分别获取arr1和arr2中对应

    2024年02月12日
    浏览(35)
  • FreeMarker系列--list的用法(长度,遍历,下标,嵌套,排序)

    原文网址:FreeMarker系列--list的用法(长度,遍历,下标,嵌套,排序)_IT利刃出鞘的博客-CSDN博客 本文介绍FreeMarker的list的用法。 Java Freemaker _index是list的一个属性 嵌套时前面要有括号,如下,将字符串变成list,然后取第i个元素的值 嵌套时前面要有括号,如下,将字符串变成li

    2024年02月12日
    浏览(35)
  • JS数组删除指定下标元素 JS删除对象指定元素

    一、JS数组删除指定下标元素 splice方法——Array.splice(index,n) 参数语义化理解:删除以下标index为起点的n个元素。(之后的元素会往前移动) 注意:splice会直接改变原数组  参考:JS数组删除指定下标元素_大浩籽的博客-CSDN博客_js数组删除指定下标元素 二、JS删除对象指定元素 参

    2024年02月13日
    浏览(41)
  • 矩阵对角线元素的和

    题目: 给你一个正方形矩阵 mat ,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例: 输入:mat = [[1,2,3],             [4,5,6],             [7,8,9]] 输出:25 解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25 请注意

    2024年02月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包