求整数数组的子集【C语言】

news2024/9/23 21:22:21

方法1:通过二进制位,因为n个整数数组的子集有2的n次方个,例如整数数组为{1,2,3},子集有2的3次方,8个;

期望的输出形式

其中需要了解关注的是

n&1判断最低位是否有数。如果一个子集为{2},利用二进制位2&1让其最低位空出来,依次类推。

n>>1结果是n/2

将n&1与n>>1结合就可以得到

若n=3(011); n&1=1 其最低位可以得到,n>>1 = 1;其次低位可以低到,

可以通过下面代码解读

#include <stdio.h>
​
int main(int argc, char const *argv[])
{
    int n=3;
    int str1[3]={1,2,3}; // 定义一个数组
    int str2[3]={0};
    for (int i = 2; i >= 0; i--)
    {
        if(n&1)    // i=2 n=3 n&1=1 ; i=1 n=1 n&1=1 ; i=0 n=0 n&1=0
        {
            str2[i]=str1[i];// str2[2]=str1[2] ;str2[1]=str1[1] ; 
        }
        n >>= 1; // n=1 n=0
    }
    for (int i = 0; i < 3; i++)
    {
        printf("%d ",str2[i]); // str2[2]=str1[2] ;str2[1]=str1[1] ; str[0]未被赋值
    }
    
    return 0;
}
​

此时得到了

以上述思想求整数数组的子集

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
​
int main(int argc, char const *argv[])
{
    int nums[3] = {1,2,3};
    int numsSize = 3;
    int num = pow(2,numsSize);
    int **returnColumnSizes;
    returnColumnSizes = (int**)malloc(sizeof(int*)*num);
    for(int i = 0; i < num; i++)  
    {
        returnColumnSizes[i] = (int*)malloc(sizeof(int)*numsSize);
    } 
    for(int i = 0; i < num; i++)
    {
        for(int j = 0;j < numsSize; j++)
        {
            returnColumnSizes[i][j] = 0;
            
        }
        
    }   
    for(int i = 0; i < num; i++)
    {
        for(int j = 0; j < numsSize; j++)
        {
            returnColumnSizes[i][j]=0;
            printf("%d ",returnColumnSizes[i][j]);
        }
        printf("\n");
    }
    printf("---------\n");
    for(int i = 0; i < num; i++)
    {
        
        int n=i;
        int k=0;
        while (n)
        {
            if(n&1)
            {
                returnColumnSizes[i][k]=nums[k];
            }
            n >>= 1;
            
            k++;
        }
        
        
    }
    printf("---------\n");
    
    for(int i = 0; i < num; i++)
    {
       
        for(int j = 0; j < numsSize; j++)
        {
            if(returnColumnSizes[i][j]==0)
            {
                continue;
            }
            printf("%d ",returnColumnSizes[i][j]);
             
        }
       
        printf("\n");
    }
   
}
​

本题本来打算写来回答力扣题78题求子集的,但是,才疏学浅,还是我不配。

最终结果将所有0都去掉了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1915434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++初阶:类与对象(一)

✨✨所属专栏&#xff1a;C✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 类的定义 定义格式 • class为定义类的关键字&#xff0c;后面跟类的名字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员&#xff1b;类中的变量称为类的…

2024最新PyCharm下载安装

&#xff08;1&#xff09;打开官网&#xff1a;https://www.jetbrains.com/ &#xff08;2&#xff09;点击pycharm &#xff08;3&#xff09;进入后点击下载按钮 &#xff08;4&#xff09;此时有两个选择&#xff1a;有专业版和社区版 PyCharm有专业版&#xff08;Prof…

zynq启动和程序固化流程

普通FPGA启动 FPGA的启动方式主要包含主动模式、被动模式和JTAG模式。 主动模式&#xff08;AS模式&#xff09; 当FPGA器件上电时&#xff0c;它作为控制器从配置器件EPCS中主动发出读取数据信号&#xff0c;并将EPCS的数据读入到自身中&#xff0c;实现对FPGA的编程。这种…

公众号运营秘籍:8 大策略让你的粉丝翻倍!

在当今信息爆炸的时代&#xff0c;微信公众号的运营者们面临着前所未有的挑战&#xff1a;如何在这个充满竞争的红海中脱颖而出&#xff0c;吸引并留住粉丝&#xff1f;事实上&#xff0c;微信公众号的红利期并未完全过去&#xff0c;关键在于我们如何策略性地运营&#xff0c;…

关于复现StableDiffusion相关项目时踩坑的记录

研究文生图也有了一段时间&#xff0c;复现的论文也算是不少&#xff0c;这篇博客主要记录我自己踩的坑。 目前实现文生图的项目主要分为两类&#xff1a; 一、基于Stable-diffusion原项目文件实现 原项目地址&#xff1a;https://github.com/Stability-AI/stablediffusion …

【自监督学习】DINO in ICCV 2021

一、引言 论文&#xff1a; DINO: Emerging Properties in Self-Supervised Vision Transformers 作者&#xff1a; Facebook AI Research 代码&#xff1a; DINO 特点&#xff1a; 对于一张图片&#xff0c;该方法首先进行全局和局部的裁剪与增强并分别送入教师和学生网络&am…

YOLOv10改进 | 图像去雾 | MB-TaylorFormer改善YOLOv10高分辨率和图像去雾检测(ICCV,全网独家首发)

一、本文介绍 本文给大家带来的改进机制是图像去雾MB-TaylorFormer&#xff0c;其发布于2023年的国际计算机视觉会议&#xff08;ICCV&#xff09;上&#xff0c;可以算是一遍比较权威的图像去雾网络&#xff0c; MB-TaylorFormer是一种为图像去雾设计的多分支高效Transformer…

WordPress PHP Everywhere <= 2.0.3 远程代码执行漏洞(CVE-2022-24663)

前言 CVE-2022-24663 是一个影响 WordPress 插件 PHP Everywhere 的远程代码执行&#xff08;RCE&#xff09;漏洞。PHP Everywhere 插件允许管理员在页面、文章、侧边栏或任何 Gutenberg 块中插入 PHP 代码&#xff0c;以显示基于评估的 PHP 表达式的动态内容。然而&#xff…

FreeCAD: 将STL格式文件转换为step格式文件的记录

首先我们需要下载开源的FreeCAD软件&#xff0c;官网链接如下&#xff1a; FreeCAD: Your own 3D parametric modeler 傻瓜式安装&#xff0c;跳过~ FreeCAD 是一款免费的开源CAD软件&#xff0c;支持多种文件格式转换&#xff0c;包括STL到STEP。 步骤&#xff1a; 打开Free…

PTrade常见问题系列7

获取可转债数据为空。 量化交易内&#xff0c;获取可转债标的行情&#xff0c;提示报错12319*.SZ不支持。 1、建议客户在研究内执行get_price&#xff0c;返回无数据&#xff1b; 2、怀疑asset.pk内不存在该可转债代码&#xff0c;再研究内执行import pandas as pd df pd.re…

前端使用pinia中存入的值

导入pinia,创建pinia实例 使用pinia中的值

Rust: 高性能序列化库Fury PK bincode

在序列化库中&#xff0c;传统的有Json,XML&#xff0c;性能好的有thrift&#xff0c;protobuf等。 对于二进制库来讲&#xff0c;据Fury官网的介绍&#xff0c;Fury性能要远远好于protobuf&#xff0c;且不象protobuf还需要定义IDL(即写.proto文件)&#xff0c;非常轻便&#…

数据库-ubuntu环境下安装配置mysql

文章目录 什么是数据库&#xff1f;一、ubuntu环境下安装mysql二、配置mysql配置文件1.先登上root账号2.配置文件的修改show engines \G; mysql和mysqld数据库的基础操作登录mysql创建数据库显示当前数据库使用数据库创建表插入students表数据打印students表数据select * from …

【ArcGIS 小技巧】为国空用地字段设置属性域,快速填充属性值并减少出错

属性域属性是描述字段类型可用值的规则。可用于约束表或要素类的任意特定属性中的允许值。——ArcGIS Pro 帮助文档 简单理解属性域&#xff1a;对于一个含义为性别的字段&#xff0c;我们一般会给的属性值有男、女两种。我们可以将这两种属性值制作成属性域并指定给该字段&…

05STM32EXIT外部中断中断系统

STM32EXIT外部中断&中断系统 中断系统中断触发条件&#xff1a;中断处理流程和用途&#xff1a; STM32中断NVIC嵌套中断向量控制器基本结构 中断系统 中断触发条件&#xff1a; 对外部中断来说&#xff0c;可以是引脚发生了电平跳变 对定时器来说&#xff0c;可以是定时的…

nginx初理解

没有ngix时&#xff0c;有两台服务器&#xff0c;供访问 1. 现在有两台服务器上同样的路径下都放了一个&#xff0c; 都能通过ip加端口访问到页面 后端项目 &#xff08;查看tomcat中的配置中的 server.xml&#xff0c;能找到项目路径&#xff09; tomacat 也都有 两个…

【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

​​​​​​​ 目录 一、引言 二、pipeline库 2.1 概述 2.2 使用task实例化pipeline对象 2.2.1 基于task实例化“自动语音识别” 2.2.2 task列表 2.2.3 task默认模型 2.3 使用model实例化pipeline对象 2.3.1 基于model实例化“自动语音识别” 2.3.2 查看model与task…

Vue2 基础十Vuex

代码下载 Vuex 概述 组件之间共享数据的方式&#xff1a; 父组件向子组件传值&#xff0c;是以属性的形式绑定值到子组件&#xff08;v-bind&#xff09;&#xff0c;然后子组件用属性props接收。子组件向父组件传值&#xff0c;子组件用 $emit() 自定义事件&#xff0c;父组…

Collections集合工具类简介

Collections集合工具类 特点&#xff1a;构造私有&#xff0c;方法都是静态的&#xff0c;通过类名直接调用 static <T> boolean addAll(Collection<? super T> c, T... elements) 作用&#xff1a;批量添加元素 public class Test {public static void main(S…

联想拯救者Y7000 IRX9 笔记本接口功能介绍

适用机型&#xff1a;Legion Y7000 IRX9; 83JJ&#xff1b; USB&#xff08;3.2 Gen 1&#xff09;Type-接口摄像头开关组合音频插孔 多用于USB Type-C接口 以太网接口 多用途USB Type-C接口&#xff08;支持USB Power Delivery&#xff09;HDMI接口USB&#xff08;3.2 Gen 1&…