当前位置: 首页 > news >正文

C语言每日一题:10.不使用+-*/实现加法+找到所有数组中消失的数。

题目一:

请添加图片描述
题目链接:

思路一:

1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。
举例:5(0101)2(0010)进行异或等于:7(0111)相同为0,不同位1.
2.如果两个数之间需要进位
1.如果两个1进行异或那么这个位置就变成了0满足进位的条件。(对于两个数异或求非进位和来说)。
2.只有两个1才是进位,所以使用与的方法获取要进的位之后进行左移动。(得到进位之后的数值)。
3.进行相加,但是不可以使用加法。因为我们知道两个数之间如果不产生进位操作,按位异或就是他们的和。
4.循环判断按位与的结果为0的时候说明两个数相加不存在进位。

int Add(int num1, int num2 ) {// write code hereint sum, forward;do{//1.每一个位置相加,不产生进位(10(1010)+2(0010)-->8(1000)不进位)sum = num1^num2;//2.找到要加的进位数(10(1010)&2(0010)-->2(0010)<<1-->4(0100))forward = (num1&num2) << 1;//3.将前两步的值相加,但是相加不能用加法,重复前面两个步骤,直到不产生进位num1 = sum;//第二步的forward值为0,说明没有位需要前进,它们的和必然是sum的值num2 = forward;} while (num2 != 0);//结束条件是不产生进位return num1;
}

题目二

请添加图片描述
题目链接:

>思路一:

1.使用双for循环判断。
2.从1到n循环遍历,每一个数在数组中从前到后去判断。是否存在
3.如果数组被遍历完全动没有相等的值那么说明这个外面循环的这个数不存在于数组中。

int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){int n = numsSize;int* num = (int*)calloc(n,sizeof(int));int count = 0;int j = n;int flag = 0;for (int i = 1; i <= n; i++){int j = 0;for (j = 0,flag=0; j < n; j++){if ((nums[j])==i ){flag = 1;break;}}if (flag!=1){(*(num+count)) = i;count++;flag = 0;}}(*returnSize) = count;return num;
}

产生问题:
请添加图片描述

>思路二:

0.进行快速排序使nums先有序
1.不允许开辟额外的空间,因为有连续的数值存在。
2.从nums找出单独的数放到num中,并记录个数为count。
3.把num的内容拷贝到nums中。num的前面count个元素置为空
4.这个时候满足[1,n]中存在的数只有一个在nums中。
5.从1到n开始遍历,nums数组。
6.当nums的最后一个不是n就需要有一个k<=n的一个判断条件如果没有的化(n2是nums中单个数的元素个数)[num[n2-1],n]这些数值是会失去找不到的。

int cmp(void*p1,void*p2){return (*((int*)p1))-(*((int*)p2));}
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){int n = numsSize;int* num = (int*)calloc(n,sizeof(int));int count = 0;qsort(nums,n,sizeof(int),cmp);//1.从前面到后面只有一个数按照顺序放到num里面。num[count]=nums[0];count++;for(int i=0;i<n-1;i++){if(nums[i+1]!=num[count-1]){num[count]=nums[i+1];count++;}}//2.把只有一个的数放回去到nums中,把num置为空。int n2=count;count=0;memcpy(nums,num,sizeof(int)*n2);memset(num,0,sizeof(int)*n2);//3.当nums的最后一个不是n就需要有一个k<=n//的一个判断条件如果没有的化[num[n2-1],n]这些数值是会失去找不到的。int j=0;int k=1;//1,1,2,2,这样的情况。//1,2,有k<=n否则是否出现这样的情况导致有的数没有判断到。while(j<n2||k<=n){if(nums[j]==k){k++;j++;}else{num[count++]=k;k++;}}(*returnSize) = count;return num;
}

相关文章:

C语言每日一题:10.不使用+-*/实现加法+找到所有数组中消失的数。

题目一&#xff1a; 题目链接&#xff1a; 思路一&#xff1a; 1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。 举例&#xff1a;5&#xff08;0101&#xff09;2&#xff08;0010&#xff09;进行异或等于&#xff1a;7&#xf…...

LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

1、问题&#xff1a; https://github.com/CocoaPods/Specs.git/&#xff1a;LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443的解决办法 出现这个问题的原因基本都是代理的问题&#xff1a; 只需要加上代理就可以了&#xff1a; #http代理 git conf…...

JS数组的详解与使用

什么是数组&#xff1f; 数组是一种有序的集合&#xff0c;有长度和索引&#xff0c;以及身上有许多的API方法 面试题&#xff1a;数组和伪数组的区别&#xff1a;数组和伪数组都有长度和索引&#xff0c;区别是数组身上有许多的API方法 而伪数组身上不存在这些API方法创建数组…...

c++ / python / java / PHP / SQL / Ruby / Objective-C / JavaScript 发展史

c发展史 C是由丹尼斯里奇和肯汤普森在1970年代早期开发的C语言的扩展。C最初被称为“C with Classes”&#xff0c;是在1980年代初期由比雅尼斯特劳斯特鲁普开发的。 1983年&#xff0c;斯特劳斯特鲁普将C with Classes重新命名为C。在1985年&#xff0c;C编译器的第一个版本被…...

Linux第一个小程序-进度条(缓冲区概念)

1.\r和\n C语言中有很多字符 a.可显字符 b.控制字符 对于回车其实有两个动作&#xff0c;首先换行&#xff0c;在将光标指向最左侧 \r &#xff1a;回车 \n&#xff1a;换行 下面举个例子&#xff1a; 把\n去掉会怎样 什么都没输出。为什么&#xff1f; 2.缓冲区概念 观察下两个…...

CentOS7环境安装tomcat

环境准备 由于是在练习&#xff0c;为了方便&#xff0c;我们可以 1.关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service 2.关闭selinux 在/etc/selinux/config中&#xff0c;设置&#xff1a; SELINUXdisabled 3.准备jdk---》jdk-8u333-li…...

C# 中使用ValueTask优化异步方法

概要 我们在开发过程中&#xff0c;经常使用async的异步方法&#xff0c;但是有些时候&#xff0c;异步的方法中&#xff0c;可能包含一些同步的处理。本文主要介绍通过ValueTask这个struct&#xff0c;优化异步处理的方法性能。 代码及实现 有些时候我们会缓存一些数据在内…...

KVM创建新的虚拟机(图形化)

1.启动kvm管理器 [rootlocalhost ~]# virt-manager2.点击创建虚拟机 3.选择所需os安装镜像 4.选择合适的内存大小和CPU 5.创建所需磁盘 6.命名创建的虚拟机...

正则表达式在格式校验中的应用以及包装类的重要性

文章目录 正则表达式&#xff1a;做格式校验包装类&#xff1a;在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中&#xff0c;掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开&#xff0c;帮助读者更好地面对面试挑…...

Docker使用之java项目工程的部署

同样本文的基础建立在已在目标服务器&#xff08;以linux为示例&#xff09;上安装了docker&#xff0c;安装教程请移步度娘 若容器存在请先停止&#xff0c;在删除&#xff0c;然后删除镜像重新编译 //停止容器 sudo docker stop datatransfer//删除容器 sudo docker rm dat…...

3ds Max如何进行合成的反射光泽通道渲染

推荐&#xff1a; NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 准备场景 步骤 1 打开 3ds Max。smart_phone.max打开已 随教程提供。 打开 3ds Max 步骤 2 按 M 打开材质编辑器。选择空材料 槽。单击漫射通道。它将打开材质/贴图浏览器窗口。选择位图&#xff0…...

114、Spring AOP是如何实现的?它和AspectJ有什么区别?

Spring AOP是如何实现的?它和AspectJ有什么区别? 一、AOP的理解1、spring aop:动态代理实现2、spring aop 和 AspectJ的区别3、小图一、AOP的理解 其实,AOP只是一种编程思想,表示面向切面编程,如果想实现这种思想,可以使用动态代理啊,第三方的框架 AspectJ啊等等。 1…...

正则表达式速通

简介 正则表达式&#xff0c;我们可以看作通配符的增强版&#xff0c;可以帮我们匹配指定规则的字符串&#xff0c;在计算机中应用广泛&#xff0c;比如说爬虫、网站的登录表单等。 原视频&#xff1a;https://www.bilibili.com/video/BV1da4y1p7iZ 学习正则表达式的常用工具…...

数据可视化(5)热力图及箱型图

1.热力图 #基本热力图 #imshow&#xff08;x&#xff09; #x&#xff0c;数据 x[[1,2],[3,4],[5,6],[7,8],[9,10]] plt.imshow(x) plt.show() #使用热力图分析学生的成绩 dfpd.read_excel(学生成绩表.xlsx) #:表示行号 截取数学到英语的列数 xdf.loc[:,"数学":英语].…...

React 组件通信-全面解析

父子组件通信 // 导入 import { useState } from "react";import "./App.scss"; import { defaultTodos } from "./components/module/contentData";// 子组件 const Module ({ id, done, text, onToggle, onDelData }) > {return (<div…...

“深入理解Spring Boot:快速构建微服务架构的利器“

标题&#xff1a;深入理解Spring Boot&#xff1a;快速构建微服务架构的利器 摘要&#xff1a;Spring Boot是一种基于Spring框架的开源项目&#xff0c;它通过自动化配置和约定优于配置的原则&#xff0c;使得开发者能够快速构建微服务架构。本文将深入介绍Spring Boot的特点和…...

SpringBoot超级详解

1.父工程的父工程 在父工程的父工程中的核心依赖&#xff0c;专门用来版本管理的 版本管理。 2.父工程 资源过滤问题&#xff0c;都帮解决了&#xff0c;什么配置文件&#xff0c;都已经配置好了&#xff0c;资源过滤问题是帮助&#xff0c;过滤解决让静态资源文件能够过滤到…...

手机的python怎么运行文件,python在手机上怎么运行

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机上的python怎么运行程序&#xff0c;手机的python怎么运行文件&#xff0c;今天让我们一起来看看吧&#xff01; 1、python程序怎么在手机上运行 python语言应用很广泛&#xff0c;自己也很喜欢使用它&#xff0c;其…...

RBAC三级树状菜单实现(从前端到后端)未完待续

1、表格设计 RBAC 2、前端路由 根据不同的用户id显示不同的菜单。 根据路由 3、多级菜单 展示所有权限&#xff0c;并且根据当前用户id展示它所属的角色的所有菜单。 前端树状展示 思路&#xff1a; 后端&#xff1a;传给前端map&#xff0c;map里1个是所有菜单&am…...

牛客网Verilog刷题——VL41

牛客网Verilog刷题——VL41 题目答案 题目 请设计一个可以实现任意小数分频的时钟分频器&#xff0c;比如说8.7分频的时钟信号&#xff0c;注意rst为低电平复位。提示&#xff1a;其实本质上是一个简单的数学问题&#xff0c;即如何使用最小公倍数得到时钟周期的分别频比。设小…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...