leetcode: single number

半导体材料仿真:二维材料仿真_(1).二维材料的基本概念 在半导体材料仿真领域,二维材料因其独特的物理和化学性质而受到广泛关注。二维材料,也称为二维纳米材料,是指在二维空间(通常是平面)上具有原子级厚度的材料。这些材料的厚度通常在几个纳米甚至单个原子层的范围内,使得它们在电子、光学、热学和机械性能上表现出与传统三维材料显著不同的特性。本节将详细介绍二维材料的基本概念,包括它们的分类、结构、性质以及在半导体材料仿真中的应用。 阅读详情

1.[2,2,1,7,6,9,0,4,4,0,9,6,1]

思路:

1.1 假设a[0]就是dingle number,

a[0]与a[1]之后的所有元素比较,直到最后一个元素。

1.2 如果中途a[0]等于其他元素,跳转出来,a[1]与后面的元素比,直到最后一个元素。

重复扫完所有元素。

 

瞬间方了,,,写的啥玩意儿

#include <iostream>

#include "stdio.h"
#include <vector>
using namespace std;

/*
思路整理:
假设每一个当前的都是双数,
并开始从第0个开始向后扫,确认假设,如果扫到最后,没找到相等的数,
说明猜想错误,退出,得出当前的下标,得出结果。

*/ 


class Solution {
public:
	int singleNumber(int nums[]) {
		int len=sizeof(nums);
		int single_num;
		for(int i=0;i<len;i++)
		{
			single_num=nums[i];
			printf("\n judge if nums[%d]:---%d\n",i,nums[i]);
			for(int j=0;j<len;j++)
			{
				if( single_num==nums[j] && j!=i )
				{
					printf("\nnot single_num,break!\n");
					j=0;
					break;
				}
				if(j==len-1)
				{
					//扫到最后了
					printf("\n扫到最后了\n");
					return nums[i];
				}
				printf(" %d",nums[j]);
			}
		}
	}
};


int main()
{

	Solution* So=new Solution;
	//int arry[]={4,1,2,1,2};
	int arry[]={2,1,2};
	//int arry[]={4,1,2,1,2,4,7,6,6};
	int re=So->singleNumber(arry);
	printf("\n=======the result:=======%d\n",re);

	return 0;
}

//简直太打击了!

 

输出的那串是什么回事?

能得出结果,但是复杂度为O(n2),,,不满足,,,,

原因:越界访问。

 

 

总算能正确跑过,,, 不容易,,,最简单的类型的题。


class Solution {
public:
	int singleNumber(vector<int>& nums) {
		int len=nums.size();
		int single_num,single_flag=0;
		for(int i=0;i<len;i++)
		{
			single_num=nums[i];
			//printf("\n judge if nums[%d]:---%d\n",i,nums[i]);
			for(int j=0;j<len;j++)
			{
				if( single_num==nums[j] && j!=i  )
				{
					//printf("\nnot single_num,break!\n");
					j=0;
					break;

				}
				if(j==len-1)
				{
					//扫到最后了
					printf("\n扫到最后了\n");
					single_flag=1;
					// return nums[i];

				}


			}
			if(single_flag)
				//return nums[i];
				break;

		}
		return single_num;

	}

};

 

优化:

如何提速呢?

空间换时间呗,

 

保留菜痕迹,

class Solution {
    /*
    思路:创建一个新的vector来进行操作,只比第一个元素与后续的扫描。相等则删除。
    */
    
public:
	int singleNumber(vector<int>& nums) {
		//int len=nums.size();
        int len;
		vector<int> temp(nums);
        int j=0,i=j+1;
        while(1)
        {
            len=temp.size();//refresh the length of temp
            //printf("len now:%d\n",len);
           if(temp[j]==temp[i])
            {
                //printf("====%d\n",temp[0]);
                temp.erase(temp.begin());//delete the 0th number,
                temp.erase(temp.begin()+(i-1));//i should -1 for the 0th have been delete
                i=j+1;
                continue;
            }
            if(i==len)
                return temp[j];//reach the end and not equal
            i++;//else i<len
            
//             if(i<len)
//             {//not reach the end
//                 i++; 
//                 //printf("i:%d\n",i);
//                 for(int v=0;v<len;v++)
//                     printf("%d ",temp[v]);
//             }
            
//             if(i==len)
//             return temp[j];//reach the end and not equal
                
        }
        
	}

};

又越界访问!!!!

bug:越界访问导致ERROR: AddressSanitizer: heap-buffer-overflow on address

 

强迫症:

并没有优化了多少,,,没多少区别,

class Solution {
    /*
    思路:创建一个新的vector来进行操作,只比第一个元素与后续的扫描。相等则删除。
    也可直接破坏传进来的nums,直接删它,直接对nums操作
    */
    
public:
	int singleNumber(vector<int>& nums) {
		vector<int> temp(nums);
        int len,j=0,i=j+1;
        while(1)
        {
            len=temp.size()-1;//refresh the length of temp
            if(len==0)
                return temp[j];
           
           if(temp[j]==temp[i])
            {
                temp.erase(temp.begin());//delete the 0th number,
                temp.erase(temp.begin()+(i-1));//i should -1 for the 0th have been delete
                i=j+1;
                continue;
            }
            if(i==len)
                return temp[j];//reach the end and not equal
            i++;//else i<len
            
        }
        
	}

};

 

 

看人家大神解法:666

The trick is: A^B^A=B

 

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        if(nums.empty()) return 0;
        int first = nums[0];
        for(int i = 1; i<nums.size();i++) {
            first = first ^ nums[i];
        }
        return first;
    }
};

 

 

 

 

 

北斗导航 | SPP、RTK、RTD、PPP-RTK、PPP算法原理,公式及完整matlab代码 开发参考:SPP适合入门学习GNSS定位原理和最小二乘。RTK是工程高精度定位主流方案,但依赖基站。PPP适合无基站区域的广域高精度应用。PPP-RTK是融合两者优点的新一代技术,但系统复杂度最高。· 代码资源:raPPPid(VieVS PPP)是功能完整的MATLAB开源PPP工具箱,支持多系统PPP-AR。MATLAB GPS Toolbox 提供从SPP到PPP的完整功能实现。· 实际应用:农业自动驾驶、无人机航测通常使用网络RTK;大地测量、地壳形变监测常采用PPP事后处理; 阅读详情

相关推荐

MIKE11实战:平原河网水动力建模从入门到精通(附GIS数据处理技巧)

本文系统介绍了MIKE11软件在平原河网水动力建模中的完整实战流程。从GIS数据预处理、河网构建、参数率定到结果分析,详细阐述了构建可靠数字孪生模型的关键步骤与技巧,旨在帮助水利工程师高效解决平原地区复杂水流模拟的挑战,为防洪决策提供科学依据。

weixin_28419039的博客 689

[C++]Single Number 单个数字

leetcode 链接:https://leetcode.com/problems/single-number/ Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a l

成为一个合格的IT工作者 953

零基础实战:YOLO检测头自定义替换全攻略

本文为零基础用户提供了YOLO检测头自定义替换的完整实战指南。通过将检测头比作汽车的“方向盘”,文章详细阐述了为何需要替换、如何寻找和集成新检测头模块、修改配置文件以及最终训练验证的全过程,旨在帮助用户针对特定任务(如小目标检测)提升模型性能。

perl8的博客 255

leetcode 136. Single Number(单独的数字)

Given a non-empty array of integers nums, every element appears twice except for one. Find that single one. You must implement a solution with a linear runtime complexity and use only constant extra space. Example 1: Input: nums = [2,2,1] Output: 1 Example

蓝羽飞鸟的博客 276

AirSim安装和地图加载

详细教程如何安装AirSim并加载地图

fegxg的博客 3033

【驱动适配】高通sa522平台tac5x1x驱动适配全指南

本手册详细介绍了TAC5301-Q1音频编解码器在高通sa525平台Linux系统下的驱动适配流程。主要内容包括:1)TAC5301-Q1核心特性(车载级音频Codec、关键接口和功能);2)驱动适配依赖(高通声卡驱动、ALSA SoC框架等);3)I2S协议原理及主从模式说明;4)硬件准备与检查要点;5)完整的驱动移植步骤(代码移植、Kconfig/Makefile修改、设备树配置)。该手册适用于嵌入式音频开发工程师快速完成TAC5301-Q1芯片的驱动移植与验证工作。

嵌入式博哥的博客 304

LeetCode之SingleNumber

SingleNumber 描述 Given a non-empty array of integers, every element appears twice except for one. Find that single one. 给出一个非空的整型数组,每一个元素出现两次,仅仅有一个元素出现一次,找到那个唯一的 Note: Your algorithm should have a line...

Blackoutdragon的博客 485

ADS124S08配置避坑指南:从SPI时序到寄存器设置,手把手教你调通24位ADC

本文详细解析了ADS124S08 24位ADC的SPI时序配置、寄存器设置及外围电路设计中的关键细节,帮助工程师避开常见陷阱。从SPI通信模式选择到DRDY引脚读取优化,再到基准电压启动时间调整,提供了实战验证的解决方案,确保高精度数据采集的稳定性。

weixin_29192365的博客 286

LeetCode每日一题——Single Number

【代码】LeetCode每日一题——Single Number。

叶卡捷琳堡的博客 295

labview汽车电子通用测试程序架构,CAN通讯上位机

结合做过的汽车电子测试项目,车身控制器测试,CAN网络模块测试,电机控制器功能测试,汽车仪表盘视觉及功能测试、电气盒功能测试、EOL下线检测、车用空调控制器功能测试等项目,结合实际项目,整理编写的一个汽车电子,通用测试架构,包含项目的讲解等。6、数据保存 、数据处理、 曲线显示 、报警处理等。7、CAN总线故障信息监控及记录保存。2、参数设置(CAN端口及参数)5、CAN通讯+数据解析。

ali2805486883的博客 2758

MaxScript批量修改材质、贴图名称

MaxScript批量修改材质、贴图名称1 实现效果1.1 修改前材质、贴图名称1.2 修改后2 代码 1 实现效果 1.1 修改前材质、贴图名称 1.2 修改后 2 代码 prefixName = "prefiname" maxFile = "maxfilepath" makeDir "newBitmappath" mapsPath = newbitmappath + "\\" fn formatStr index = ( str = index as string newS

郑德帅 3241

LeetCode刷题(10)~只出现一次的数字

题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解答 By 海轰 提交代码(暴力解法) int singleNumber(vector<int> &nums) { int len = nums.size(); int j; in

海到无边天作岸 山登绝顶我为峰 1497

AMD机密计算虚拟机介绍

AMD机密计算虚拟机介绍

木简熙的博客 525

LeetCode: 137. Single Number II

LeetCode: 137. Single Number II 题目描述 Given a non-empty array of integers, every element appears three times except for one, which appears exactly once. Find that single one. Note: Your algorithm s...

杨领well的专栏 195

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

leetcode:single-number,single-number ii

一. 题目描述 single-number: Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. C

better me的博客 312

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

leetcode笔记:Single Number

该题目提到,一个数组中除了一个数只出现一次之外,其他数都出现了两次,找出这个特别的数。这道题对时间和空间有要求,面对这种情况,一般是暗示有十分轻巧而简便的方法进行求解。在一些场景下,使用基本的逻辑运算是个不错的选择。自己简单写了一下,再参照网上部分解法,基本都是使用了异或运算(XOR),任何数与自己进行按位异或都等于0,而任何数与0进行按位异或都等于本身。

liyuefeilong的专栏 6078

Leetcode:Single Number

Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using ext

u012962381的专栏 308

LeetCode: 260. Single Number III

LeetCode: 260. Single Number III 题目描述 Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear ...

杨领well的专栏 201

LeetCode: 136. Single Number

LeetCode: 136. Single Number Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could

qha0731的专栏 413

LeetCode: 136. Single Number

题目描述: 136.Single Number Easy Given anon-emptyarray of integers, every element appearstwiceexcept for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. C...

lrsage 268

【LeetCode & 剑指offer刷题】位运算题3:56 数组中只出现一次的数字(136. Single Number)(系列)...

【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...) 136.Single Number Given anon-emptyarray of integers, every element appearstwiceexcept for one. Find that single one. Note: Your algorith...

weixin_30325071的博客 140

LeetCode 136: Single Number

问题描述 Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without...

zero 161

LeetCode: Single Number II

题目链接:https://leetcode.com/problems/single-number-ii/ 题目: Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a

yangyao_iphone的专栏 660

LeetCode:Single Number

Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using extra memo

306

LeetCode 137:Single Number II

Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using

哈哈的个人专栏 6121
上一篇: 器:ubuntu系统还原时遇到无法进入系统
下一篇: 搬:测试常用文件
nedwons
博客等级 码龄9年 311粉丝 572原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值