哈希表的介绍和使用

哈希表的介绍和使用

  今天,我们来介绍的是哈希表,哈希表主要用于对数据的出现次数统计,查重。利用的容器主要有vector、map/set、ordered_map/ordered_set等。

  下面我们来看几道例题:

class Solution {

public:

    vector<int> twoSum(vector<int>& nums, int target) {

        unordered_map<int,int> hash;

        for(int i=0;i<nums.size();i++){

            int x=target-nums[i];

            if(hash.count(x)) return {hash[x],i};

            hash[nums[i]]=i;

        }

        return {-1,-1};

    }

};

2.

class Solution {

public:

    bool CheckPermutation(string s1, string s2) {

        int n=s1.size(),m=s2.size();

        if(n!=m) return false;

        int hash[26]={0};

        for(int i=0;i<n;i++){

            hash[s1[i]-'a']++;

        }

        for(int i=0;i<n;i++){

            hash[s2[i]-'a']--;

            if(hash[s2[i]-'a']<0) return false;

        }

        return true;

    }

};

3.

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int n = nums.size();
        for (int i = 0; i < n - 1; i++) {
            if (nums[i] == nums[i + 1]) {
                return true;
            }
        }
        return false;
    }
};

4.

class Solution {

public:

    bool containsNearbyDuplicate(vector<int>& nums, int k) {

        unordered_map<int,int> hash;

        for(int i=0;i<nums.size();i++){

            if(hash.count(nums[i])){

                if(i-hash[nums[i]]<=k) return true;

            }

            hash[nums[i]]=i;

        }

        return false;

    }

};

5.

class Solution {

public:

    vector<vector<string>> groupAnagrams(vector<string>& strs) {

        unordered_map<string,vector<string>> hash;

        for(auto& e : strs){

            string ret=e;

            sort(ret.begin(),ret.end());

            hash[ret].push_back(e);

        }

        vector<vector<string>> a;

        for(auto& [x,y] : hash){

            a.push_back(y);

        }

        return a;

    }

};

  全部结束了,期待下次交流!!!

Read more

AiOnly大模型服务实测:从零开始Python调用ChatGPT/Claude API,打造专属AI智能体

AiOnly大模型服务实测:从零开始Python调用ChatGPT/Claude API,打造专属AI智能体

AiOnly大模型服务实测:从零开始Python调用ChatGPT/Claude API,打造专属AI智能体 本文围绕 AiOnly 一站式 Mass 模型服务平台展开,先介绍其基础概念与服务,平台聚焦降低模型应用门槛,整合全球前沿模型,提供企业级 API 服务,降低成本且支持高并发,可调用多种顶尖大模型。接着详细说明平台注册、免费额度领取及 API 密钥获取步骤,还介绍热门模型功能。随后重点讲解 Python 调用 API 的实战,包括环境准备、基础与进阶调用,以及专属 Python 学习智能体的封装与功能扩展,提及对话和图片理解、入参参数。最后列出常见问题与解决方案,并总结平台优势及进一步开发方向,让你更方便上手。 一、关于AiOnly 1.1 AiOnly的基础概念 AiOnly是一站式Mass模型服务平台,聚焦降低模型应用门槛,加速场景智能化进程,以一键调用、敏捷开发为核心,整合全球前沿模型,通过标准化API接口与模块化组件,

By Ne0inhk

一个使用 OpenAI Python SDK 进行 API 调用的示例脚本

一、 程序文件概述与核心功能 一个典型的、结构清晰的客户端应用程序,其主要功能是与一个部署在特定基础URL上的大型语言模型(本例中为 "QwQ-32B")进行交互。程序的核心任务是向模型发送一个预设的自然语言查询("请列举近三年提出的漏洞检测技术的文献"),并完整地接收、计时并处理模型返回的文本响应。同时,它具备完善的异常处理机制,能够优雅地应对网络超时、API服务端错误以及其他未知问题。 从软件架构的角度看,该脚本扮演了客户端的角色,它通过 HTTP 协议与远端的 API 服务器 通信。其工作流程遵循典型的请求-响应模式:构建请求 -> 发送请求 -> 等待并接收响应 -> 解析响应 -> 输出结果/处理错误。 二、 代码结构与逐行解析 1. 模块导入 (import) import openai

By Ne0inhk

NewBie-image-Exp0.1从零开始:Python调用大模型生成图片教程

NewBie-image-Exp0.1从零开始:Python调用大模型生成图片教程 你是否也曾经被那些精美的动漫角色图吸引,却苦于不会画画?或者想快速生成一批风格统一的角色素材,但手动设计成本太高?今天我们要聊的这个工具,或许能彻底改变你的创作方式。 NewBie-image-Exp0.1 是一个专注于高质量动漫图像生成的大模型项目。它不仅具备强大的视觉表现力,还引入了独特的 XML 提示词机制,让你可以像写代码一样精确控制每一个角色的属性。更棒的是,现在有一个预配置好的镜像版本,省去了繁琐的环境搭建和依赖安装过程,真正实现“开箱即用”。 本文将带你一步步上手使用这个镜像,从最基础的运行测试脚本,到理解其核心功能,再到如何自定义提示词来生成你想要的画面。无论你是AI绘画的新手,还是有一定经验的技术爱好者,都能在这篇文章中找到实用的信息。 1. 镜像简介与核心优势 NewBie-image-Exp0.1 并不是一个简单的开源项目打包,而是一个经过深度优化和修复的完整推理环境。它的最大价值在于解决了原项目部署过程中常见的三大难题:环境冲突、源码Bug 和模型下载困难。 1.1

By Ne0inhk
【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据

【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据

做量化交易、财经数据分析、投资复盘的开发者和投资者,经常会遇到核心痛点:付费金融数据接口成本高、免费 API 注册流程繁琐、多市场数据分散难以整合。告别 QMT 回测烦恼!手把手教你搭建 MiniQMT+Backtrader 量化回测框架 本文就给大家详细讲解 Python 量化圈的开源神器AKshare,从安装到核心功能实战全覆盖,代码可直接复制运行,零基础也能一键获取全市场金融行情数据。 一、AKshare 是什么? AKshare 是一款基于 Python 开发的开源金融数据接口库,专为个人投资者、量化爱好者、财经数据分析人员打造,是目前国内生态最完善、维护最活跃的免费金融数据工具之一。 它支持股票、期货、基金、外汇、债券、指数、加密货币等多种主流金融市场的数据获取,核心优势如下: * 免费开源:完全开源免费,无隐藏收费,个人非商用零成本使用,无需开通付费会员 * 数据覆盖全面:A 股、

By Ne0inhk