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

26.日常算法

1. 字符串中的第一个唯一字符

题目来源
给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。

示例 1:
输入: s = “leetcode”
输出: 0

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<char, int> hash;
        int ret = -1;
        for (auto & c : s) hash[c]++;;
        for (int i = 0; i < s.size(); i++){
            if (hash[s[i]] == 1){
                ret = i;
                break;
            }
        }
        return ret;
    }
};

2. 二分查找

题目来源
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0, right = nums.size() - 1;
        while (left < right){
            int mid = (right + left) >> 1;
            if (target > nums[mid]) left = mid + 1;
            else right = mid;
        }
        if (nums[left] == target) return left;
        return -1;
    }
};

http://www.kler.cn/a/521465.html

相关文章:

  • Mybatis——sql映射文件中的增删查改
  • Maven运行任何命令都报错“Internal error: java.lang.ArrayIndexOutOfBoundsException”
  • 作业四:简述mysql 主从复制原理及其工作过程,配置一主两从并验证。
  • 科普篇 | “机架、塔式、刀片”三类服务器对比
  • 理解离散傅里叶变换(三.复数) 2025 1 26
  • leetcode 2412. 完成所有交易的初始最少钱数
  • 【前端】Electron入门开发教程,从介绍Electron到基础引用以及部分深度使用,附带常见的十个报错问题的解决方案和代码优化。
  • 【自然语言处理(NLP)】从零实现循环神经网络RNN、Pytorch实现循环神经网络RNN
  • 消息队列篇--通信协议篇--MQTT(通配式主题,消息服务质量Qos,EMQX的Broker,MqttClient示例,MQTT报文等)
  • 强化学习 - 基于策略搜索和策略优化: 高斯策略
  • 【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}
  • RKNN_C++版本-YOLOV5
  • UE求职Demo开发日志#12 完善击杀获得物品逻辑和UI
  • 论文阅读 AlphaFold 2
  • 高效流式大语言模型(StreamingLLM)——基于“注意力汇聚点”的突破性研究
  • 25_.NET控制台服务器配置
  • 人物轮廓提取与人脸识别:原理、实现与应用
  • 论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
  • 广东某海水取排水管线工程边坡自动化监测
  • LeetCode | 不同路径