相关算法---哈希表

【通信原理】基于【MATLAB】的通信OFDM系统仿真 主要进行OFDM系统的仿真,使用MATLAB软件对OFDM系统的接收端和发射端分别进行模拟仿真。 阅读详情

哈希表

1.理论基础

哈希表是根据关键码的值直接进行访问的数据结构。(数组其实就是一个简单的哈希表

一般哈希表都是用来快速判断一个元素是否出现在集合里的。

常见的三种哈希结构:

  • 数组
  • set(集合)
  • map(映射)

2. 有效的字母异位词

题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。说明:你可以假设字符串只包含小写字母。

题目分析:定义一个record数组存放26个字母,遍历s的字符+1,遍历t的字符-1,看最后record的值是否全为0,是则返回true,否则返回false。

class Solution {
    public boolean isAnagram(String s, String t) {
        int[] record = new int[26];
        for(char c : s.toCharArray()){
            // 并不需要记住字符a的ASCII,只要求出一个相对数值就可以了
            record[c - 'a'] += 1;
        }
        for(char c : t.toCharArray()){
            record[c - 'a'] -= 1;
        }

        for(int i : record){
            if(i != 0){
                // record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。
                return false;
            }
        }
        // record数组所有元素都为零0,说明字符串s和t是字母异位词
        return true;
    }
}

3. 两个数组的交集

题目:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

题目分析:输出的结果要去重。

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        if(nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0){
            return new int[0];
        }
        Set<Integer> set = new HashSet<>();
        Set<Integer> resSet = new HashSet<>();
        //遍历nums1
        for(int i : nums1){
            set.add(i);
        }
        //遍历nums2的过程中判断哈希表中是否存在该元素
        for(int i : nums2){
            if(set.contains(i)){
                resSet.add(i);
            }
        }
        int[] resArr = new int[resSet.size()];
        int index = 0;
        //将结果转换成数组
        for(int i : resSet){
            resArr[index++] = i;
        }
        return resArr;
    }
}

4. 快乐数

题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。

题目分析:求和的过程中,sum会重复出现。使用哈希法来判断sum是否重复出现,重复了就false,否则一直找到1为止。

class Solution {
    public boolean isHappy(int n) {
        Set<Integer> record = new HashSet<>();
        // 如果这个sum曾经出现过,说明已经陷入了无限循环了
        while(n != 1 && !record.contains(n)){
            record.add(n);
            n = getNextNumber(n);
        }
        return n == 1;
    }
    public int getNextNumber(int n){
        int res = 0;
        while(n > 0){
            int temp = n % 10; //求最后一位数
            res += temp * temp;
            n /= 10; //缩小n
        }
        return res;
    }
}

5. 两数之和

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

class Solution {
    //数组两层for循环也可
    public int[] twoSum(int[] nums, int target) {
        int n = nums.length;
        for (int i = 0; i < n; ++i) {
            for (int j = i + 1; j < n; ++j) {
                if(target == nums[i] + nums[j]){
                    return new int[]{i, j};
                }
            }
        }
        return new int[0];
    }
    
    //Map也可
    public int[] twoSum(int[] nums, int target) {
    int[] res = new int[2];
    if(nums == null || nums.length == 0){
        return res;
    }
    Map<Integer, Integer> map = new HashMap<>();
    for(int i = 0; i < nums.length; i++){
        int temp = target - nums[i];
        if(map.containsKey(temp)){
            res[1] = i;
            res[0] = map.get(temp);
        }
        map.put(nums[i], i);
    }
    return res;
}
}

6. 四数相加II

题目:给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1 。

题目分析:**使用哈希法的经典题目。**这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况

class Solution {
    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        Map<Integer, Integer> map = new HashMap<>();
        int temp;
        int res = 0;
        //统计两个数组中的元素之和,同时统计出现的次数,放入map
        for (int i : nums1) {
            for (int j : nums2) {
                temp = i + j;
                if (map.containsKey(temp)) {
                    map.put(temp, map.get(temp) + 1);
                } else {
                    map.put(temp, 1);
                }
            }
        }
        //统计剩余的两个元素的和,在map中找是否存在相加为0的情况,同时记录次数
        for (int i : nums3) {
            for (int j : nums4) {
                temp = i + j;
                if (map.containsKey(0 - temp)) {
                    res += map.get(0 - temp);
                }
            }
        }
        return res;
    }
}

7. 赎金信

题目:给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)你可以假设两个字符串均只含有小写字母。

题目分析:杂志里面的字母不可重复使用。只有小写字母。因为题目只有小写字母,就可以用一个长度为26的数组去记录magazine里字母出现的次数,再用该数组去验证ransomNote是否包含了这些字母。(要求只有小写字母,就用数组)

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        //记录杂志字符串出现的次数
        int[] arr = new int[26];
        int temp;
        for (int i = 0; i < magazine.length(); i++) {
            temp = magazine.charAt(i) - 'a';
            arr[temp]++;
        }
        for (int i = 0; i < ransomNote.length(); i++) {
            temp = ransomNote.charAt(i) - 'a';
            //对于金信中的每一个字符都在数组中查找
            //找到相应位减一,否则找不到返回false
            if (arr[temp] > 0) {
                arr[temp]--;
            } else {
                return false;
            }
        }
        return true;
    }
}

8. 三数之和

题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。

题目分析:用哈希法并不合适,在去重的操作上难免会出现查错。

**用双指针方法更高效一些:**先将数组进行排序,i从下标0开始,left在i + 1 的位置,right在数组结尾处。指针进行移动,如果三者数之和大了,right就要向左移动;三者数小了就要left向右移动,直到left和right相遇。

双指针解法是一层for循环num[i]为确定值,然后循环内有left和right下标作为双指针,找到nums[i] + nums[left] + nums[right] == 0。(就是拿两个值来双指针,其他作为确定值,以后五位数、六位数等等之和,一样的方法

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> result = new ArrayList<>();
        Arrays.sort(nums);

        for (int i = 0; i < nums.length; i++) {
            // 排序之后如果第一个元素已经大于零,那么无论如何组合都不可能凑成三元组,直接返回结果就可以了
            if (nums[i] > 0) {
                return result;
            }

            // 正确去重方法:就是以nums[i]作为确定值,在后面去找符合条件的数。如果下一个元素跟上个元素一样就不用继续了,直接跳过。
            if (i > 0 && nums[i] == nums[i - 1]) {
                continue;
            }

            int left = i + 1;
            int right = nums.length - 1;
            while (right > left) {
                // 去重复逻辑如果放在这里,0,0,0 的情况,可能直接导致 right<=left 了,从而漏掉了 0,0,0 这种三元组
                /*
                while (right > left && nums[right] == nums[right - 1]) right--;
                while (right > left && nums[left] == nums[left + 1]) left++;
                */
                int sum = nums[i] + nums[left] + nums[right];
                if (sum > 0) {
                    right--;
                } else if (sum < 0) {
                    left++;
                } else {
                    result.add(Arrays.asList(nums[i], nums[left], nums[right]));

                    // 去重逻辑应该放在找到一个三元组之后
                    while (right > left && nums[right] == nums[right - 1]){
                        right--;
                    } 
                    while (right > left && nums[left] == nums[left + 1]){
                        left++;
                    }
                    
                     // 找到答案时,双指针同时收缩
                    right--; 
                    left++;
                }
            }
        }
        return result;
    }
}

9. 四数之和

题目:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。**注意:**答案中不可以包含重复的四元组。

题目分析;双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况.

class Solution {
    public List<List<Integer>> fourSum(int[] nums, int target) {
        List<List<Integer>> result = new ArrayList<>();
        Arrays.sort(nums);
       
        for (int i = 0; i < nums.length; i++) {

             // 去重
            if (i > 0 && nums[i - 1] == nums[i]) {
                continue;
            }
            
            for (int j = i + 1; j < nums.length; j++) {
                // 正确去重方法
                if (j > i + 1 && nums[j - 1] == nums[j]) {
                    continue;
                }

                int left = j + 1;
                int right = nums.length - 1;
                while (right > left) {
                    int sum = nums[i] + nums[j] + nums[left] + nums[right];
                    if (sum > target) {
                        right--;
                    } else if (sum < target) {
                        left++;
                    } else {
                        result.add(Arrays.asList(nums[i], nums[j], nums[left], nums[right]));
                        // 去重逻辑应该放在找到一个四元组之后
                        while (right > left && nums[right] == nums[right - 1]) right--;
                        while (right > left && nums[left] == nums[left + 1]) left++;

                        // 找到答案时,双指针同时收缩
                        left++;
                        right--;
                    }
                }
            }
        }
        return result;
    }
}

10. 总结

数组

在2、7题中用数组作为哈希表。包含小写字母就用数组。

set

在3题中没有限制数值的大小,就无法使用数组来做哈希表。

此时做映射就可以使用set。并不需要对数据进行排序,而且不让数据重复出现,4题也用了set。

map

在5题中,不仅要判断y是否存在还有记录y的下标位置,要返回x和y的下标,所以set不能用。用map就可以key保存数值,value保存数值所在的下标。

在6题四数相加II中是四个独立的数组,不用考虑重复的问题,而8、9题是在一个数组(集合)里找到和为0的组合。而用哈希法解决8、9题非常麻烦,去重会导致代码复杂还容易出错,因而推荐使用双指针法。

抖音创作者必备工具!免费一键批量下载无水印视频 + 一键提取抖音视频文案 阅读详情

相关推荐

【R语言-生存分析之观察生存率计算】

全人群肿瘤登记资料常用的统计分析指标包括发病率、死亡率、现患率以及生存率等,其中肿瘤生存率是评估肿瘤治疗效果和肿瘤负担的必要指标,其计算涉及肿瘤患者的发病、 死亡和随访三个方面的资料, 数据整理和计算过程均较为复杂, 如何及时、 准确地计算肿瘤生存率, 并使其可以在不同地区、 不同人群、不同时期间被客观公正地比较和评价,仍然是统计学家们一直在研究的主题。

weixin_46579654的博客 5441

力扣刷题(day0011)两个数组的交集

记录春招准备面试第11天

Far berth的博客 388

支付逻辑漏洞的八大姿势(上篇)

学习支付漏洞,看这篇文章!!!文章来源:SecHub网络安全社区(本资料仅供学习参考,严禁使用者进行未授权渗透测试!严禁任何形式的转载!

qq_39493066的博客 1358

leetcode每日一题:349. 两个数组的交集

系列:哈希表语言:java题目来源:Leetcode349. 两个数组的交集。

Jing_Hua 912

汇丰外包Java岗面试复盘:Zoom面1.5小时,从英语、粤语到现场敲代码的极限挑战

本文详细记录了汇丰银行外包Java岗位的面试全过程,包括多语言切换(英语、粤语)的技术沟通挑战和现场编码测试的实战经验。从高并发编程到JVM调优,面试不仅考察技术深度,更注重实战问题解决能力。文章分享了应对跨国银行技术面试的实用策略,帮助Java开发者在跨文化环境中提升竞争力。

weixin_42524824的博客 363

学Simulink--基于电力电子变换器的建模与仿真实例:LLC谐振变换器在高频AC-DC转换中的建模

本文详细介绍了使用Simulink+Simscape Electrical对LLC谐振变换器进行建模与仿真的完整流程。LLC谐振变换器因其高效率、低噪声的特点,广泛应用于高频AC-DC转换场景。文章从背景原理出发,逐步讲解系统结构设计、建模步骤(包括AC源、整流器、LLC变换器、负载等模块搭建)、控制策略实现(固定频率/变频/PID控制)和仿真设置。通过分析仿真结果的关键指标,提出参数整定和算法优化建议。该建模方法为电力电子设计人员提供了实用的仿真工具,有助于优化LLC变换器性能,缩短开发周期。

xiaoheshang_123的博客 298

两个数组的交集

两个数组的交集 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:[4,9] 也是可通过的 提示: 1 <= nums1.length, nums2.length <= 1000 0 <= n

weixin_45295612的博客 1415

如何合法抓取TikTok视频信息和评论:完整Python爬虫教程

尽管TikTok没有开放的公共API来直接抓取视频内容和评论,开发者仍然可以通过合法的方式使用第三方API工具来获取公开数据。无论使用什么工具,都应当严格遵守TikTok的使用条款和当地的隐私法规,确保数据抓取行为符合规定。通过本文介绍的TikTok-Api库和Python技术,你可以合法地抓取公开的视频信息和评论,并进行数据存储与分析。使用这些技术时,务必确保抓取行为不会侵犯用户隐私,并遵守平台的API使用规定。

2201_76125261的博客 1710

leetcode:两个数组的交集(c语言)

题目链接:349. 两个数组的交集 - 力扣(LeetCode) (leetcode-cn.com) 题目描述:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 思路:法一暴力破解,将nums1数组中的每一个数字,判断是否存在于nums2数组中,通过这种方式找出交集数据,找出之后判断这个数组是否已经在返回数组中存

HBINen的博客 1651

华为OD机试新系统真题-魔法咒语组合(Java/Py/C++/Go/C/Js)

华为OD机试 新系统真题【魔法咒语组合】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【魔法咒语组合】多语言题解

qq_45776114的博客 670

PHP与Node.js的对比及优缺点分析

PHP和Node.js是两种常用的服务器端编程语言,它们在不同的应用场景下各有优势和劣势。本文将全方位比较PHP和Node.js的特点,以及它们在编程中的优缺点,并提供相应的源代码示例供参考。需要注意的是,本文只是对PHP和Node.js的一些优缺点进行了简要介绍,实际应用中还需要考虑其他因素,如团队经验、项目规模和预算等。最终的选择应该基于全面的评估和需求分析。PHP:PHP是一种同步阻塞的编程语言,它的处理方式是一次只处理一个请求。Node.js:Node.js的性能较高,特别适合处理高并发的请求。

ByteSparkX的博客 888

349. 两个数组的交集

349. 两个数组的交集 题目 详解 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:[4,9] 也是可通过的 提示: 1 <= nums1.length, nums2.length <= 100

qq_44972915的博客 870

innovus中如何设置cts参数

上面是设置cts的一般设置,如果需要对某些skew group或者某些clock tree设置不一样的参数,如需要对clk1这个clock设置不一样的inverter,可以使用。需要查询已经设置过的ccopt参数,可以使用get_ccopt_property去查询,方法和set_ccopt_property一致。言归正传,cts的设置命令是set_ccopt_property,获取命令是get_ccopt_property。另外,set_ccopt_property提供一套命令查询方法。

芯冰乐 545

实现哈希表的相关运算算法

/** *    实验题目: *        实现哈希表的相关运算算法 *    实验目的: *        领会哈希表的构造和查找过程及其相关算法设计 *    实验内容: *        设计程序,实现哈希表的相关运算,并完成如下功能: *    1、建立关键字序列(16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77)对应的哈希 *    表A[0..1...

xiezhi123456的博客 5874

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【算法】哈希表相关

哈希表是一种存储数据的容器,可以快速查找某个元素,其查找的时间复杂度为 O(1),非常合适需要频繁查找某一个元素的场景。直接使用底层为哈希表的 STL 容器。用数组模拟简易的哈希表,例如利用数组统计字符串中字符的频次、整型的数据范围很小时映射某些值等。

NeeEk0的博客 1289

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数据结构:哈希表的学习和相关算法题的书写

文章目录前言一、What is hashing?二、如何实现哈希表中的映射和带来的问题三、哈希表的分类总结 前言 使用哈希表可以进行非常快速的查找操作。但是,哈希表究竟是啥?很多人避而不谈,虽然知道经常用到,很多语言的内置数据结构像python中的字典,java中的HashMap,都是基于哈希表实现,但人们很少关注其底层实现的细节,今天便来学习哈希表的实现和书写相关算法题 一、What is hashing? 先来看一段标准的定义: 散列(hashing)是电脑科学中一种对资料的处理方法,通过某种特定的

qjyws的博客 812

Statistics and Machine Learning Toolbox

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

Java哈希表及相关算法

java哈希表及相关算法

力力在目的博客 2965

哈希表相关算法

1、两个数组的交集 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 class Solution { public int[] intersection(int[] nums1, int[] nums2) {

ym563099457的博客 440

哈希表(hash_table) 哈希存储 算法相关知识 稳定性 时间复杂度

为了快速定位数据。

xxx64646649的博客 783

哈希表、算法

在编程和数据结构中,"hash" 通常指的是哈希函数,它是一种算法,用于将数据(通常是字符。将要存储的关键字与要存储的位置建立一种联系,这种联系就叫哈希函数/散列函数。一般用大0表示法:0(n)------>时间复杂度是关于数据n的一个函数。希函数将键映射到表中位置的数据结构,以实现快速的数据插入和检索。3,如果最高阶存在且系数不是1,则去除这个项相乘的常数。随着n的增加,时间复杂度增长较慢的算法时间复杂度低。2,在修改后的运行函数中,只保留最高阶项。便于交流,阅读,理解 高内聚,低耦合。

2301_80338792的博客 953

《算法导论》11、散列表相关知识

散列表这一块东西,感觉编一个简单的程序没啥意思,要结合实际问题和STL等等才比较有意义。 所以这一篇不放代码了,放一个转载的基础知识吧。 转自:http://www.cppblog.com/myjfm/archive/2011/10/27/159232.html 1 直接寻址表 直接寻址表是数组的扩展,应用范围是全域U不是很大。它和散列表的区别是不用处理冲突,因为不会出现冲

zcy19941015的博客 642

算法-哈希表和相关练习-java

1.x mod 10^5(最好质数并且离2的n整次幂尽量远) 2.对于冲突,当前位置有数了就对位置+1直到当前没数为止,一般需要开当前范围的两到三倍,然后定义一个0x3f3f3f是大于10^9的一个数(在最大范围外)拉链法:假设映射到1~10^5内,相当于每个数字的位置都是一个链表,有冲突就插入到当前链表最后面这样。运用:把一个很大的空间映射到比较小的范围(1。哈希表存储方式:1.开放寻址法,2.拉链法。开放寻址法:直接一个数组模拟蹲坑。

m0_52695557的博客 358

数据结构源码笔记(C语言):哈希表的相关运算算法

//实现哈希表的相关运算算法 #include<stdio.h> #include<malloc.h> #include<string.h> #define MaxSize 100 //定义最大哈希表长度 #define NULLKEY -1//定义空关键字 #define DELKEY -2// 定义被删关键字值 typedef int KeyType;//关键字类型 typedef char * InfoType;//其他数据类型 typedef struct

半个冯博士 2044

【算法与数据结构 の 相关概念】散列表

这里写目录标题概念散列表构造冲突解决开放地址法:创建查找(以平方探测为例)插入(以平方探测为例)链地址法 :创建查找插入性能分析 概念 将关键词存储在一个散列表中,有两项基本工作: 计算位置: 构造散列函数确定关键词存储位置; 解决冲突: 应用某种策略解决多个关键词位置相同的问题。 散列表构造 1.直接定址法 h(key) = a * key + b (a、b为常数) 2.除留余数法 h(key) = key mod p (一般,p 取素数 ) 3.数字分析法 分析数字关键字在各位上的变化情况,取比较随机

weixin_45005811的博客 264

数据结构:哈希表 算法相关 排序算法

将要存储数据的关键字和春初位置之间建立对应映射关系,存储数据时,按照映射关系寻找存储位置;查找数据,根据关键字和映射关系,寻找原数据的存储位置映射关系称为哈希函数(散列函数)目的:提高查找效率f(key)=key%10:求余法f(key)=a*key+b:一次函数法key1!=key21.开放定址法2.链地址法1.创建哈希表2.设计哈希函数3.哈希表数据插入4.哈希表的查找5.销毁哈希表6.遍历哈希表。

yxg0505的博客 1006

LeetCode哈希表算法相关题解

LeetCode 哈希表 算法 有效字母异位词 赎金信 快乐数 两个数组的交集 两数之和 四数相加

weixin_52116727的博客 1118
上一篇: 相关算法---链表
下一篇: 相关算法---字符串
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值