首页 > 其他分享 >数组利用哨兵位查找元素

数组利用哨兵位查找元素

时间:2024-07-28 19:06:55浏览次数:13  
标签:下标 target int 元素 哨兵 查找 数组

数组利用哨兵位查找元素

  • 存储时把数组的下标0处空出,留着放哨兵位;
  • 从后向前遍历数组,直到找到目标元素,或者找到哨兵结束;
  • 根据被找到元素的所在位置判断元素是否在数组中存在
    • 0 处:不存在
    • 不在 0 处:存在

实现:

int searchBySent(int * arr, int target) {
    //把下标0赋值为目标
    arr[0] = target;

    int i;
    for (i = SIZE - 1; i >= 0; i--) {
        if (arr[i] == target) {
            //如果i没有走到头,即1至SIZE-1下标处有target元素的存在,返回下标
            return i;
        }
    }

    //如果是在下标0处找到的,返回-1
    return -1;
}

标签:下标,target,int,元素,哨兵,查找,数组
From: https://www.cnblogs.com/codels/p/18328718

相关文章

  • 数组指针与指针数组
       数组指针与指针数组这两者虽然听起来很像,但是他们的本质却截然不同在这之前,我们先了解一下二维数组,二维数组的格式为: 数组类型  数组名[][];前一个代表的是数组的行数,后一个代表的是数组的列数,其实二维数组的元素可以理解为是一维数组,inta[2][2]={{1......
  • 函数与数组
    前言:今天我们来了解一下C语言中的函数。先来做一个猜数字游戏吧。要想猜数字,就必须产生随机数,那么我们如何利用C语言来产生随机数呢?接下来就让我们来学习产生随机数的几个函数吧。1rand函数.C语言提供了一个rand函数,可以产生随机数,但是rand函数产生的这个随机数是一个......
  • 数组作为函数参数进行传递
    1.整型数组        数组在传参时,传递的是数组的首元素地址,无法在函数中得知数组有多少个元素;因此在封装函数时在形参处不仅要传首元素地址,也要传元素个数。        又由于数组传递的是地址,因此数组可以通过形参修改实参的值;即传参中,可在被调函数中修改主调函......
  • C++自学笔记29(多维数组)
    我们在之前的笔记中知道数组解决了重复变量的赋值问题,也知道数组就是指针可以用指针的方式修改内容。现在有一个数组对50个变量赋值a[50],我们有50个这样的数组a[50][50],对于这样的数组我们还有50个a[50][50][50]。这就是一维数组、二维数组、三维数组......我们拿堆上建立......
  • LeetCode1005. K 次取反后最大化的数组和
    题目链接:https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/题目叙述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种......
  • LeetCode面试150——189轮转数组
    题目难度:中等默认优化目标:最小化平均时间复杂度。Python默认为Python3。1题目描述给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]......
  • 代码随想录二刷——数组
     ......
  • 从混合字符串中查找 pandas 中的字符数
    我正在寻找pandasdf中混合列中字母的数量。如果字母数量超过2,请保留最接近数字的两个字母。我尝试使用下面的方法获取计数df['count']=len(re.findall('[a-zA-Z]',a['MyCOlumn']))但出现以下错误:TypeError:Expectedstringorbytes-像对象输......
  • 无法获取 curve_fit 的正确数据类型。例如:不可散列、具有序列的数组等
    我正在使用一个脚本来使用curve_fit分析nmr弛豫率,并从外部文件引入输入和输出值。当我实际尝试运行curve_fit时,我遇到了许多关于这些数据类型的错误消息,例如数据处于不可散列的类型、错误地将数组转换为序列、数据形状不同等。我修改了我的脚本确保它们具有相同的数据类型(......
  • Java入门到精通:第八课 数组
    一、数组概述1、数组的解释:可以存储同种数据类型的多个值的一种容器2、注意:(1)存储数据时,需要结合隐式转换:(2)建议:容器的类型,和存储的数据类型保持一致二、数组的定义1、格式:2、数组的静态初始化3、数组的动态初始化4、数组的静态初始化和数组的静态初始化的区别:......