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

廊坊手机网站制作快速整站优化

廊坊手机网站制作,快速整站优化,乡下自家院子设计图片,网站注意事项力扣第136题:只出现一次的数字 C语言解法 题目描述 给定一个非空的整数数组 nums ,其中除一个元素只出现一次外,其他每个元素均出现两次。找出那个只出现一次的元素。 示例 示例 1: 输入: nums [2,2,1] 输出: 1示例 2: 输入: nums [4…

力扣第136题:只出现一次的数字 C语言解法

题目描述

给定一个非空的整数数组 nums ,其中除一个元素只出现一次外,其他每个元素均出现两次。找出那个只出现一次的元素。

示例

示例 1:

输入: nums = [2,2,1]
输出: 1

示例 2:

输入: nums = [4,1,2,1,2]
输出: 4

示例 3:

输入: nums = [1]
输出: 1

提示

  • 1 <= nums.length <= 3 * 10^4
  • -3 * 10^4 <= nums[i] <= 3 * 10^4
  • 除了某个元素只出现一次外,数组中的其他元素都出现两次。

解题思路

1. 异或操作的特性

这道题可以利用异或运算的特性来解决。异或操作(^)有以下几个重要特性:

  • a ⊕ a = 0 a \oplus a = 0 aa=0:任何数与它自己异或的结果是 0。
  • a ⊕ 0 = a a \oplus 0 = a a0=a:任何数与 0 异或的结果是该数本身。
  • 异或运算满足交换律和结合律。

基于这些特性,我们可以对所有数组中的数字进行一次异或运算,结果就是只出现一次的数字。因为数组中除了一个数字外,其余数字都出现了两次,且由于异或的特性,成对的数字会相互抵消,最终结果就是那个只出现一次的数字。

2. 算法步骤

  1. 初始化一个变量 result 为 0。
  2. 遍历数组中的每个数字,对 result 进行异或操作。
  3. 最终 result 中的值就是只出现一次的数字。

3. 时间复杂度与空间复杂度

  • 时间复杂度 O ( n ) O(n) O(n),其中 n n n 是数组的长度。我们只需要遍历一次数组。
  • 空间复杂度 O ( 1 ) O(1) O(1),只使用了常数级别的额外空间。

C语言代码实现

#include <stdio.h>int singleNumber(int* nums, int numsSize) {int result = 0;for (int i = 0; i < numsSize; i++) {result ^= nums[i];  // 对每个数字进行异或操作}return result;  // 最终返回只出现一次的数字
}int main() {int nums1[] = {2, 2, 1};int nums2[] = {4, 1, 2, 1, 2};int nums3[] = {1};printf("Result 1: %d\n", singleNumber(nums1, 3));  // 输出 1printf("Result 2: %d\n", singleNumber(nums2, 5));  // 输出 4printf("Result 3: %d\n", singleNumber(nums3, 1));  // 输出 1return 0;
}

代码解释

  1. singleNumber 函数

    • 初始化 result 为 0。
    • 遍历数组,对每个元素进行异或操作。
    • 最终返回 result,即那个只出现一次的数字。
  2. main 函数

    • 测试了三组数据,分别是 [2, 2, 1][4, 1, 2, 1, 2][1],并输出结果。

异或运算的过程示例

假设输入数组为 [4, 1, 2, 1, 2],我们逐个进行异或运算:

  • result = 0 ^ 4 = 4
  • result = 4 ^ 1 = 5
  • result = 5 ^ 2 = 7
  • result = 7 ^ 1 = 6
  • result = 6 ^ 2 = 4

最终结果为 4,即只出现一次的数字。

4. 时间复杂度分析

时间复杂度是 O ( n ) O(n) O(n),其中 n n n 是数组的长度。因为我们只需要遍历一次数组,对每个元素进行一次常数时间的异或操作。

5. 空间复杂度分析

空间复杂度是 O ( 1 ) O(1) O(1),只用了常数级别的额外空间来存储 result 变量。

总结

通过利用异或运算的特性,这道题可以在 O ( n ) O(n) O(n) 时间复杂度内解决,而且只需要 O ( 1 ) O(1) O(1) 的空间复杂度。异或操作的特性使得我们能够快速找到只出现一次的元素,非常高效。

http://www.ds6.com.cn/news/110097.html

相关文章:

  • 外贸网站域名能用cn做后缀吗网站搜索关键词优化
  • 网站根目录怎么写百度平台客服怎么联系
  • 招聘网站做招聘顾问推广赚钱app排行榜
  • 网站海外推广谷歌seo方案怎么做好网络营销推广
  • 如皋网站定制免费外链发布平台在线
  • 珠海高端网站建设公司公司网站注册流程和费用
  • 公司网站要多大空间聚合广告联盟
  • 帮别人做ppt挣钱的网站推广小程序拿佣金
  • 网站的ip地址香港新闻头条今日新闻
  • 珠海网站建设科速互联外链
  • 广州优化网站建设亚马逊跨境电商个人开店
  • 优客工场 网站开发站长推荐
  • 碑林网站制作电商运营公司
  • 万网网站发布seo教学平台
  • 公司法人查询系统seo排名是什么意思
  • 谁会写网站代码国外浏览器搜索引擎入口
  • 关于网页设计的网站seo入门培训
  • 厦门推广公司搜索引擎优化的概念是什么
  • 驻马店做网站公司搜索引擎推广
  • 百度网站数据统计怎么做韩国seocaso
  • 如何搭建自己的网站服务器地址百度网盘电脑版官网
  • 这样做网站seo包年服务
  • 视频网站建设需要多少钱网络营销的手段有哪些
  • 做网站公司赚不赚钱线上推广策划方案范文
  • 静安网站建设it培训学校it培训机构
  • 深圳建站公司设计搜索引擎登录入口
  • 国企门户网站建设情况汇报html底部友情链接代码
  • 一流的龙岗网站建设竞价推广哪家公司好
  • 网站建设阶段网盘资源大全
  • 设计师网站资源免费b站推广网站链接