力扣刷题day2(最长公共前缀,有效括号,删除有序数组中的重复元素)

题目1:14.最长公共前缀

思路和解析: 

#define  _CRT_SECURE_NO_WARNINGS
//最长公共前缀
char* longestCommonPrefix(char** strs, int strsSize)
{
    // 如果字符串数组为空,则返回空字符串
    if (strsSize == 0)
    {
        return "";
    }
    // 将第一个字符串设定为最长公共前缀值
    char* prefix = strs[0];
    // 逐一比较每个字符串,更新最长公共前缀值
    for (int i = 1; i < strsSize; i++)
    {
        int j = 0;
        // 逐个字符比较,直到遇到字符串末尾或者不相等的字符
        //以["flower","flow","flight"]举例
        //j=0进去,历遍完flower
        //j=1进去,到判断为\0停止,截断位置为w
        //j=2进去,到o!=i停止,截断位置为l
        while (prefix[j] != '\0' && strs[i][j] != '\0' && prefix[j] == strs[i][j])
        {
            j++;
        }
        // 将最长公共前缀值截断至当前位置
        prefix[j] = '\0';
    }
    return prefix;
}

 题目2:20.有效的括号

思路和解析: 

//有效的括号
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<stdbool.h>

bool isValid(char* s)
{
    int len = strlen(s);  // 获取字符串长度
    int* stack = malloc(sizeof(int) * len);  // 创建一个数组作为栈
    int count = 0;  // 记录栈中元素个数
    for (int i = 0; i < len; i++)
    {
        if (s[i] == '(')  // 如果是左括号'(',则将对应的右括号')'入栈
        {
            stack[count++] = ')';
        }
        else if (s[i] == '{')  // 如果是左花括号'{',则将对应的右花括号'}'入栈
        {
            stack[count++] = '}';
        }
        else if (s[i] == '[')  // 如果是左方括号'[',则将对应的右方括号']'入栈
        {
            stack[count++] = ']';
        }
        else if (count == 0 || stack[count - 1] != s[i])  // 如果栈为空或栈顶元素不等于当前字符,则返回false
        {
            return false;
        }
        else  // 否则出栈一个元素
        {
            count--;
        }
    }
    return count == 0;  // 最后检查栈是否为空,若为空则返回true,否则返回false
}

题目3:26.删除有序数组中的重复项

思路和解析:

//删除有序数组中的重复项
//
int removeDuplicates(int* nums, int numsSize)
{
    int fast = 0, slow = 0;//fast为找不同元素的指针,slow算是存储不同元素的指针
    while (fast < numsSize)
    {
        if (nums[fast] == nums[slow])
        {
            fast++;//相等的时候,快指针开始找下一个值
        }
        else
            //不相等的时候,慢指针开始存储值
        {
            slow++;
            nums[slow] = nums[fast++];
        }
    }
    return slow + 1;//返回慢指针
    //   最后返回的是slow+1,因为slow为下标,+1后才是数组长度
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

P7 Linux C三种终止进程的方法

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f6f8;推荐专栏3: ​​​​​​《 链表_Chen…

基于深度学习面向中医诊断的舌象图像分割系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 中医舌诊是通过观察舌的各种特征来了解人体的健康状况&#xff0c;从而对各种疾病做出诊断及病情评估&#xff0c;是传统中国医学应用最广、最有价值的诊法之一。…

632. 最小区间

632. 最小区间 class Solution {public int[] smallestRange(List<List<Integer>> nums) {int size nums.size();Map<Integer, List<Integer>> indices new HashMap<Integer, List<Integer>>();int xMin Integer.MAX_VALUE, xMax Inte…

什么因素会影响葡萄酒陈酿的能力?

糖、酸和酚类与水的比例是葡萄酒陈酿程度的关键决定因素&#xff0c;收获前葡萄中的水分越少&#xff0c;产生的葡萄酒就越有可能具有一定的陈酿潜力。那么葡萄品种、气候和葡萄栽培实践的过程就相当重要了&#xff0c;对陈酿的时间发挥了重要的作用。皮较厚的葡萄品种&#xf…

iOS ------ 调用高德地图SDK

一&#xff0c;导入第三方库 这里使用CocoaPods安装SDK&#xff0c;方法和前面导入第三方库相同 1.打开终端&#xff0c;cd 文件路径 进入到所创建的项目文件中 2.输入pod init为该项目创建Podfile文件 3.编辑 Podfile 文件 Podfile文件内容如下&#xff1a; platform :ios,…

图形遍历效率低?试试 R 树

大家好&#xff0c;我是前端西瓜哥。 今天我们来看看 R 树是什么&#xff1f;以及它为什么能够提高图形的检索速度。 R 树&#xff08;R-tree&#xff09;是一种 空间索引技术&#xff0c;能够是从大量的节点中&#xff0c;快速找到特定范围的元素集合&#xff0c;而不用一个…

Verilog 入门(八)(验证)

文章目录 编写测试验证程序波形产生值序列重复模式 测试验证程序实例从文本文件中读取向量实例&#xff1a;时序检测器 测试验证程序用于测试和验证设计方法的正确性。Verilog 提供强有力的结构来说明测试验证程序。 编写测试验证程序 测试验证程序有三个主要目的&#xff1a;…

JNPF——强大、高效、易学的低代码开发工具

目录 1.什么是低代码 2.什么是JNPF? 3.推荐JNPF的理由 4.小结 你是否为编程世界的各种挑战感到头痛&#xff1f;想要以更高效、简单的方式开发出专业级的项目&#xff1f;JNPF低代码工具正是你苦心寻找的产品&#xff01;它是一款专为稍微懂一点点编程思想的入门级人员设计…

vue elementUI 上传非空验证

<el-form-item label"照片" prop"staffImg"><template v-slot:label><span v-show"!rules.staffImg[0].required"style"color: #ff4949;margin-right: 4px;">*</span><span>照片</span></temp…

【动手学深度学习】(六)权重衰退

文章目录 一、理论知识二、代码实现2.1从零开始实现2.2简洁实现 【相关总结】 主要解决过拟合 一、理论知识 1、使用均方范数作为硬性限制&#xff08;不常用&#xff09; 通过限制参数值的选择范围来控制模型容量 通常不限制偏移b 小的意味着更强的正则项 使用均方范数作为柔…

深入理解TDD(测试驱动开发):提升代码质量的利器

在日常的软件开发工作中&#xff0c;我们常常会遇到这样的问题&#xff1a;如何在繁忙的项目进度中&#xff0c;保证我们的代码质量&#xff1f;如何在不断的迭代更新中&#xff0c;避免引入新的错误&#xff1f;对此&#xff0c;有一种有效的开发方式能帮助我们解决这些问题&a…

CSS中区分行高,行间距

行高&#xff08;line height&#xff09; —文字占有的实际高度 —使用line-height来设置行高 行高类似于我们上学单线本&#xff0c;单线本是一行一行&#xff0c;线与线之间的距离就是行高&#xff0c;控制文字行与行之间的距离&#xff0c; 网页中的文字实际上也是写在一个…

14. 二叉树遍历

从物理结构的角度来看&#xff0c;树是一种基于链表的数据结构&#xff0c;因此其遍历方式是通过指针逐个访问节点。然而&#xff0c;树是一种非线性数据结构&#xff0c;这使得遍历树比遍历链表更加复杂&#xff0c;需要借助搜索算法来实现。 二叉树常见的遍历方式包括层序遍…

0基础学java-day14

一、集合 前面我们保存多个数据使用的是数组&#xff0c;那么数组有不足的地方&#xff0c;我们分析一下 1.数组 2 集合 数据类型也可以不一样 3.集合的框架体系 Java 的集合类很多&#xff0c;主要分为两大类&#xff0c;如图 &#xff1a;[背下来] package com.hspedu.c…

Domino多Web站点托管

大家好&#xff0c;才是真的好。 看到一篇文档&#xff0c;大概讲述的是他在家里架了一台Domino服务器&#xff0c;上面跑了好几个Internet的Web网站&#xff08;使用Internet站点&#xff09;。再租了一台云服务器&#xff0c;上面安装Nginx做了反向代理&#xff0c;代理访问…

matlab实践(十):贝塞尔曲线

1.贝塞尔曲线 贝塞尔曲线的原理是基于贝塞尔曲线的数学表达式和插值算法。 贝塞尔曲线的数学表达式可以通过控制点来定义。对于二次贝塞尔曲线&#xff0c;它由三个控制点P0、P1和P2组成&#xff0c;其中P0和P2是曲线的起点和终点&#xff0c;P1是曲线上的一个中间点。曲线上…

前端JavaScript入门-day08-正则表达式

目录 介绍 语法 元字符 边界符 量词 字符类&#xff1a; 修饰符 介绍 正则表达式&#xff08;Regular Expression&#xff09;是用于匹配字符串中字符组合的模式。在 JavaScript中&#xff0c;正则表达式也是对象&#xff0c;通常用来查找、替换那些符合正则表达式的…

Distilling the Knowledge in a Neural Network(2015.5)(d补)

文章目录 Abstract1 Introduction2 Distillation2.1 Matching logits is a special case of distillation Results 论文链接 Abstract 提高几乎所有机器学习算法性能的一种非常简单的方法是在相同的数据上训练许多不同的模型&#xff0c;然后对它们的预测进行平均[3]。不幸的是…

Node.js安装和下载(保姆级教程,别再再说你不会了)

1.浏览器搜索node.js 2.打开官网&#xff08;选择Other Download&#xff09; ​ 3.根据你的计算机版本选择 4.找到你下载的程序&#xff08;双击打开&#xff09; 5.双击后的效果如下&#xff1a; 6.继续下一步 7.选择安装路径然后下一步 8.然后继续下一步 9. 直接下一步&am…

P6 Linux 系统中的文件类型

目录 前言 ​编辑 01 linux系统查看文件类型 02 普通文件 - 03 目录文件 d 04 字符设备文件 c 和块设备文件 b 05 符号链接文件 l 06 管道文件 p 07 套接字文件 s 总结 前言 &#x1f3ac; 个人…