算法基础五

张量网络算法基础(五、TEBD算法和DMRG算法) 这里写目录标题TEBD算法定义TEBD算法计算一维格点模型基态DMRG算法二级目录二级目录三级目录 TEBD算法 定义 给定一个张量网络,把所有的指标求和,得出求和的结果。例如一个由(W×H)个张量组成的张量网络,其图形表示为: 该张量网络由三种不等价张量构成,在四个角上的张量为二阶张量,在边上的张量为三阶张量,在内部的张量为四阶张量。 TEBD算法为一种基于矩阵乘积态的、近似收缩张量网络的数值算法。从处于边界的张量构成的MPS开始,一行一行或一列一列地收缩张量网络。 把张量网络沿水平方向从中间分成两部 阅读详情

移除元素

给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

解题思路:这里数组的删除并不是真的删除,只是将要删除的元素移动到数组的后面,然后返回数组实际有效的长度即可。


    public int removeElement(int[] nums, int val) {
        if (nums == null || nums.length == 0) {
            return 0;
        }

        int len = nums.length;
        int index = 0;
        for(int i = 0; i < len; i++) {
            if (nums[i] != val) {
                nums[index++] = nums[i];                
            }
        }
        return index;
    }

两数相除

给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用 乘法、除法和取余运算。
整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 ,-2.7335 将被截断至 -2 。
返回被除数 dividend 除以除数 divisor 得到的 商 。

示例 1:
输入: dividend = 10, divisor = 3 输出: 3 解释: 10/3 = 3.33333… ,向零截断后得到 3 。
示例 2:
输入: dividend = 7, divisor = -3 输出: -2 解释: 7/-3 = -2.33333… ,向零截断后得到 -2 。

解题思路:可以用二分搜索来做。把除法运算后的商作为搜索目标,商的取值范围是[0,dividend]。利用二分好到(商 + 1)* 除数>被除数并且 商 * 除数 < 被除数或者 (商 + 1)* 除数 > 被除数 并且 商 * 除数 < 被除数的时候,就算找到商了,其余情况继续二分即可。


public int divide(int dividend, int divisor) {
   // 考虑被除数为最小值的情况
     if (dividend == Integer.MIN_VALUE) {
         if (divisor == 1) {
             return Integer.MIN_VALUE;
         }
         if (divisor == -1) {
             return Integer.MAX_VALUE;
         }
     }
     
     // 考虑除数为最小值的情况
     if (divisor == Integer.MIN_VALUE) {
         return dividend == Integer.MIN_VALUE ? 1 : 0;
     }
     // 考虑被除数为 0 的情况
     if (dividend == 0) {
         return 0;
     }
     
     // 一般情况,使用二分查找
     // 将所有的正数取相反数,这样就只需要考虑一种情况
     boolean rev = false;
     if (dividend > 0) {
         dividend = -dividend;
         rev = !rev;
     }
     if (divisor > 0) {
         divisor = -divisor;
         rev = !rev;
     }
     
     int left = 1, right = Integer.MAX_VALUE, ans = 0;
     while (left <= right) {
         // 注意溢出,并且不能使用除法
         int mid = left + ((right - left) >> 1);
         boolean check = quickAdd(divisor, mid, dividend);
         if (check) {
             ans = mid;
             // 注意溢出
             if (mid == Integer.MAX_VALUE) {
                 break;
             }
             left = mid + 1;
         } else {
             right = mid - 1;
         }
     }

     return rev ? -ans : ans;
 }

 // 快速乘
 public boolean quickAdd(int y, int z, int x) {
     // x 和 y 是负数,z 是正数
     // 需要判断 z * y >= x 是否成立
     int result = 0, add = y;
     while (z != 0) {
         if ((z & 1) != 0) {
             // 需要保证 result + add >= x
             if (result < x - add) {
                 return false;
             }
             result += add;
         }
         if (z != 1) {
             // 需要保证 add + add >= x
             if (add < x - add) {
                 return false;
             }
             add += add;
         }
         // 不能使用除法
         z >>= 1;
     }
     return true;
 }

串联所有单词的子串

给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。
例如,如果 words = [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”,“cdabef”, “cdefab”,“efabcd”, 和 “efcdab” 都是串联子串。 “acdbef” 不是串联子串,因为他不是任何 words 排列的连接。
返回所有串联子串在 s 中的开始索引。你可以以 任意顺序 返回答案。

示例 1:
输入:s = “barfoothefoobarman”, words = [“foo”,“bar”] 输出:[0,9]
解释:因为 words.length == 2 同时 words[i].length == 3,连接的子字符串的长度必须为 6。 子串 “barfoo” 开始位置是 0。它是 words 中以 [“bar”,“foo”] 顺序排列的连接。 子串 “foobar” 开始位置是 9。它是words 中以 [“foo”,“bar”] 顺序排列的连接。 输出顺序无关紧要。返回 [9,0] 也是可以的。
示例 2:
输入:s = “wordgoodgoodgoodbestword”, words = [“word”,“good”,“best”,“word”] 输出:[]
解释:因为 words.length == 4 并且 words[i].length == 4,所以串联子串的长度必须为 16。 s 中没有子串长度为 16 并且等于 words的任何顺序排列的连接。 所以我们返回一个空数组。
示例 3:
输入:s = “barfoofoobarthefoobarman”, words = [“bar”,“foo”,“the”],输出:[6,9,12]
解释:因为 words.length == 3 并且 words[i].length == 3,所以串联子串的长度必须为 9。 子串 “foobarthe” 开始位置是 6。它是 words 中以 [“foo”,“bar”,“the”] 顺序排列的连接。 子串 “barthefoo” 开始位置是 9。它是 words 中以[“bar”,“the”,“foo”] 顺序排列的连接。 子串 “thefoobar” 开始位置是 12。它是 words 中以 [“the”,“foo”,“bar”] 顺序排列的连接。

解题思路:这道题有两个前提条件。1,字符串数组里面的字符串长度都是一样的;2,字符串数组中的字符串都要连续连在一起,前后顺序可以任意组合。
先将字符串数组中所有字符串都存到map中,并累计出现的次数,然后从源字符串从头开始遍历,每次判断字符串数组里面的字符串是否全部用完,如果全部用完并且长度正好是字符串数组任意排列组合的长度,就记录这个组合的起始下标。


    public List<Integer> findSubstring(String s, String[] words) {
        List<Integer> res = new ArrayList<Integer>();
        int wordNum = words.length;
        if (wordNum == 0) {
            return res;
        }

        int wordLen = words[0].length();
        //HashMap1 存所有单词,记录出现的次数
        HashMap<String, Integer> allWords = new HashMap<String, Integer>();
        for (String w : words) {
            int value = allWords.getOrDefault(w, 0);
            allWords.put(w, value + 1);
        }
        //遍历所有子串
        for (int i = 0; i < s.length() - wordNum * wordLen + 1; i++) {
            //HashMap2 存当前扫描的字符串含有的单词
            HashMap<String, Integer> hasWords = new HashMap<String, Integer>();
            int num = 0;
            //判断该子串是否符合
            while (num < wordNum) {
                String word = s.substring(i + num * wordLen, i + (num + 1) * wordLen);
                //判断该单词在 HashMap1 中
                if (allWords.containsKey(word)) {
                    int value = hasWords.getOrDefault(word, 0);
                    hasWords.put(word, value + 1);
                    //判断当前单词的 value 和 HashMap1 中该单词的 value
                    if (hasWords.get(word) > allWords.get(word)) {
                        break;
                    }
                } else {
                    break;
                }
                num++;
            }
            //判断是不是所有的单词都符合条件
            if (num == wordNum) {
                res.add(i);
            }
        }
        return res;
    }

搜索旋转排列数组

整数数组 nums 按升序排列,数组中的值 互不相同 。
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。
给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。

示例 1:
输入:nums = [4,5,6,7,0,1,2], target = 0 输出:4
示例 2:
输入:nums = [4,5,6,7,0,1,2], target = 3 输出:-1
示例 3:
输入:nums = [1], target = 0 输出:-1

解题思路:给定一个升序排列的数组,并且无重复值。需要把后面随机一段有序数组放到数组前面,形成前后两段有序的子数组。因为数组有序,可以使用二分搜索算法来实现。


  public int search(int[] nums, int target) {
        int len = nums.length;
        if (len == 0) {
            return - 1;
        }

        if (len == 1) {
            return nums[0] == target ? 0 : -1;
        }

        int l = 0;
        int r = len - 1;
        while(l <= r) {
            int mid = (l + r) / 2;
            if (nums[mid] == target) {
                return mid;
            }
            if(nums[0] <= nums[mid]) {
                if (nums[0] <= target && target < nums[mid]) {
                    r = mid - 1;
                } else {
                    l = mid + 1;
                }
            } else {
                if (nums[mid] < target && target <= nums[len - 1]) {
                    l = mid + 1;
                } else {
                    r = mid - 1;
                }
            }
        }
        return -1;
    }

在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。

示例 1:
输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4]
示例 2:
输入:nums = [5,7,7,8,8,10], target = 6 输出:[-1,-1]
示例 3:
输入:nums = [], target = 0 输出:[-1,-1]

解题思路:二分搜搜算法


 public int[] searchRange(int[] nums, int target) {
        int leftIdx = binarySearch(nums, target, true);
        int rightIdx = binarySearch(nums, target, false) - 1;

        if (leftIdx <= rightIdx && rightIdx < nums.length && nums[leftIdx] == target && nums[rightIdx] == target) {
            return new int[]{leftIdx, rightIdx};
        }
        return new int[] {-1, -1};

    }

    public int binarySearch(int[] nums, int target, boolean lower) {
        int left = 0;
        int right = nums.length - 1;
        int ans = nums.length;
        while(left <= right ) {
            int mid = (left + right) / 2;
            if (nums[mid] > target || (lower && nums[mid] >= target)) {
                right = mid - 1;
                ans = mid;
            } else {
                left = mid + 1;
            }
        }
        return ans;
    }
算法基础练习(五) 本文包含7个编程题的详细解答。题目1是关于农民丰收竞赛的排名计算,通过贪心算法确定可能夺冠的农民数量。题目2涉及公路修复问题,使用排序和间距分析计算最小封闭路段长度。题目3是经典的背包问题变种,采用动态规划结合二进制优化解决多重背包问题。题目4需要最小化魔法阵关闭过程中的能量损耗,使用深度优先搜索算法。题目5-7分别处理数组操作:删除有序数组重复项、找出多数元素以及数组轮转问题,展示了不同数组处理技巧。所有题目均提供完整代码实现和详细解题思路。 阅读详情

相关推荐

vins-fusion环境配置、安装与测试

本文主要介绍如何搭建vins-fusion的运行环境,以及解决vins-fusion编译运行时遇到的环境冲突问题,并在此基础上实现例程的运行。

qq_52068373的博客 1万+

五、基础算法——差分算法

差分法

靡不有初 鲜克有终 2167

C# 异步编程详解(Task,async/await)

同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。异步的好处在于非阻塞(调用线程不会暂停执行去等待子线程完成),因此我们把一些不需要立即使用结果、较耗时的任务设为异步执行,可以提高程序的运行效率。

luxingyu329的博客 4152

算法学习之路的心得五之图论基础

GDUT 20 寒假集训专题5.图论基础 总结 题目题解 1.图的存储 目前我所知道的图的存储大致有三种, 第一种是用一个二维数组G[n] [m],对应的两个点如果有边就对应的赋值,但是要注意题目所给的是有向还是无向,有时候两个点之间有多重条边,这时候用二维数组来存的图就很高效的更新最短边(最长边)的值。 第二种是用stl里面的vector,设置一个v[n],来存图,用这个来存的优点是高效利用空间,还有后期搜索所有边也方便, 第三种是适合边中有多个条件,比如一条路里面有经过所需的时间,还有过路费,这时候

cascacasc的博客 350

逆向工程实战:如何用Frida和IDA破解AppleAccount的X-MMe-Nas-Qualify签名机制

本文通过逆向工程实战,详细解析了如何利用Frida动态Hook和IDA静态分析技术,破解AppleAccount服务中关键的X-MMe-Nas-Qualify签名机制。文章从环境搭建、动态追踪NSMutableURLRequest的签名注入点开始,逐步深入到AuthKit框架的静态剖析与算法还原,最终实现独立的签名生成,为安全研究和自动化测试提供了完整的技术路径。

bush的博客 696

实战测评:4大搜索API(You.com/Tavily/Exa/Perplexity)谁更适合你的AI项目?附Python调用代码

本文实战测评了You.com、Tavily、Exa和Perplexity四大搜索API在AI项目中的集成应用,详细对比了它们的技术特性和Python调用方法。针对LLM实时数据需求,You.com的优化设计表现突出,支持32k大上下文窗口和快速响应。文章提供了完整的代码示例和场景化选型建议,帮助开发者高效集成搜索API到AI项目中。

weixin_42569329的博客 478

五、 无向图相关算法基础

从这篇文章开始介绍图相关的算法,这也是Algorithms在线课程第二部分的第一次课程笔记。 图的应用很广泛,也有很多非常有用的算法,当然也有很多待解决的问题,根据性质,图可以分为无向图和有向图。本文先介绍无向图,后文再介绍有向图。 之所以要研究图,是因为图在生活中应用比较广泛: 无向图 图是若干个顶点(Vertices)和边(Edges)相互连接组成的。边仅由两个

__技术分享__部落格 667

Windows10内核逆向-2-KiSystemCall64的调用流程剖析

本文深入剖析了Windows 10 x64系统中KiSystemCall64函数的完整调用流程。从用户态触发syscall指令开始,详细讲解了如何通过swapgs切换内核栈、构建KTRAP_FRAME陷阱帧、进行SMAP/CFG等安全检查,到最终通过SSDT寻址并执行目标系统服务的全过程,揭示了系统调用从Ring 3到Ring 0切换的核心机制与安全设计。

weixin_29209805的博客 82

java基础算法五(散列 hash算法)

一,基础散列。 散列的思想很单一,以对应的数组下标对应,相应的值就可以了。比如:一个100位置的数组。当我将77放入时,应该放在下标为77的位置。这里有一点需要注意。 第一点,数组的最大值,是放入的最大值。比如数组100位置,那么我放入的最大值就不能超过99。这样当我们判断数组中的数是不是0,就知道它是否有值。(int类型的数组默认初始值是0); 上代码: import java.uti...

凝望星空 405

高压控制单元与接触器 —— BMS电池的“高压大门”

高压接触器在BMS电池管理系统中扮演着“高压大门”的角色,负责控制电池包与整车高压母线的连接与隔离。接触器的工作原理基于线圈产生的磁力吸合接点,通过主触点接通高压电流路径,辅助触点检测状态,灭弧结构保护接点。预充电路的设计是为了避免直接连接大电容时产生的浪涌电流冲击,通过预充电阻逐步充电,确保系统安全上电。接触器控制策略包括顺序控制、辅助触点检测、温度监控、故障断电和背靠背MOS辅助控制,以确保系统的高效和安全运行。工程师在选择接触器型号、控制线圈、检测状态、软件冗余控制和预充失败保护等方面提供了具体建议。

weixin_43199439的博客 812

eDP V1.4协议介绍

eDP的全称是Embedded DisplayPort嵌入式显示端口,主要应用与短距离系统内应用,例如手机、一体式台式机等。eDP V1.4b是基于DP V1.3标准制作完成,但因应用场景的不同,还是有很多区别。电压摆幅不同,eDP相对较低;eDP功耗相对较低;DP有线材和连接器的要求,eDP没有明确要求;AUX通道电路设计不同(相对DP取消了AC耦合电容和100KΩ/1MΩ的上下拉电阻):典型应用场景;

qflook的博客 4301

机器学习——基础算法(五)

文章目录机器学习——基础算法(五)一、XGBoost官网二、安装XGBoost过程三、Kaggle简介四、数据预处理-清洗五、0-1的one-hot编码六、用python读取矩阵形式的数据七、使用logistic,随机森林,XGBoost进行分类 机器学习——基础算法(五) 一、XGBoost官网 官网:https://xgboost.readthedocs.io/en/latest/ 代码:...

qq_41511262的博客 789

Silly Tavern酒馆ai角色卡与世界书导入超详细教程!

前几天,我在设置 Silly Tavern 的时候,想导入一个喜欢的角色卡,结果发现不少朋友其实已经下载好了角色资源,但却不知道怎么正确导入使用。这篇文章就作为一份完整的新手向教程,一步步教你如何在 Silly Tavern 中导入角色卡、世界书,并实现与 AI 角色的真实互动。如果你是第一次接触这个功能,建议先收藏慢慢看~点击菜单栏上的 图标,打开角色界面。初始状态下,你应该只看到默认角色 Seraphina。你可以先点击她的头像尝试聊天,也可以导入自己喜欢的角色。点击导入按钮,选择你下载好的角色卡(通

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2万+

基础功能实现五:哈希算法以及算法

哈希算法:在记录的存储位置和它的关键字之间建立一种去特定的对应关系,使得每个关键字key对应一个存储位置;查找时,根据确定的对应关系,找到给定的key的映射。记录的存储位置 = f(关键字)我们把这种关系f称为哈希函数(散列函数);采用这种散列技术将记录存储在一块连续的存储空间,这块连续存储开空间称为哈希表或散列表。存储时,通过散列函数计算出记录的散列地址;查找时,根据同样的散列函数计算记录的散列地址,并按此散列地址访问记录。

m0_70493759的博客 605

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

(五)算法基础——分治

基本概念 实例 称硬币 例子 归并排序 快速排序 例题 输出前m大的数 求排列的逆序数边,然后对这最右边m个元素排序,再输出。第三行包含一个整数m。把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。这个我们之前应该接触过,解决办法就是一次一次不断分解,两边先称8个,然后4个,然后两个,最后一个,就能得出结果。...

weixin_66578482的博客 312

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

算法设计与分析基础(五)

算法设计与分析基础(五) 减治法 目录算法设计与分析基础(五) 减治法减常量插入排序直接插入排序折半插入排序(属于减常因子部分,放在次数便于比较)拓扑排序减常因子假币问题折半查找 基本思想: 将规模为n的问题递减为规模为n-1或n/2的子问题, 反复递减后对子问题求解, 再建立子问题的解与原问题的解的关系。 减常数(如1):每次迭代规模减小:n → n-1 减因子(如1/2):每此迭代规模减半:n → n/2 减常量 插入排序 常用的插入排序有:直接插入排序、折半插入排序,它们划

BKSW.的博客 1182

左神基础算法笔记-五

1. 认识哈希函数和哈希表哈希函数 哈希函数有很多种实现方式,md5,sha1。相似输入经过哈希函数后天差地别。 标准哈希函数输入域是无穷的,返回值是有范围的。 same input same out different input maybe same out(哈希碰撞) 离散性:输入域中的所有值均匀分布在返回范围上。(返回范围模后也均匀分布)(离散性越好的哈...

一盏小灯下 276

MySQL基础知识五—视图以及视图算法

视图 视图:view,是一种有结构(有行有列),但是没有结果的虚拟表, 虚拟表的结构来源不是 自己定义的,而是来源于(select)对应基表中产生的。 创建视图 基表语法: Create view 视图的名称 as select 语句 后面的跟的select语句,可以是普通的查询,也可以是连接查询,也可以是联合查询,子查询 创建单表视图:基表只有...

蚂蚁 3318

【基础算法】(09)五大常用算法之五:分支限界法

本系列介绍了五大常用算法,其中本文是第五篇,介绍了 ‘分支限界法’ 的细节内容。

西海 Tech 4万+

java 几种基础算法的实现 (五)

冒泡排序 选择排序 插入排序   /**   * 数组排序法   */   public class SelectSort {   public static void main(String[] args) {   int a[]={5,2,8,4,1,9,16}; ...

kfcman的专栏 203

基础排序算法五:选择排序

基础排序算法五:选择排序 选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法。 它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的时间复杂度和稳定性 选择排序时间复杂度 选择排序的时间复杂度是O(N2...

ccystewart的博客 266

大家都来学 Java(五)基础算法问题总结

算法 一、基本编程题 1、编写一个程序,输入n,求n!(用递归的方式实现)。 public static long fac(int n){ if(n<=0) return 0; else if(n==1) return 1; else return n*fac(n-1); } public static void main(String [] args) { System.out.println(fac(6)); } 2、编写一个程序,有1,2,3,4个数字,能

立志Java全栈的伦哥哥 655

基础算法(五):DFS、BFS与剪枝

在这篇文章中荔枝主要记录DFS和BFS的相关基础知识、怎么去答题以及自己的一些浅薄理解,同样的也会涉及相关的剪枝操作介绍。希望能帮到正在学习的小伙伴哈哈哈哈哈。

荔枝当大佬的博客 3588

「网络」算法基础(五)

呼之欲出:在边数目不同的情况下求最短路。子问题规模由“允许的边数目”来决定。

uestc_lemon的博客 647

算法基础篇:(五)基础算法之差分——以“空间”换“时间”

本文系统讲解了差分算法的核心思想与应用场景。差分算法通过构建差分数组实现区间高效修改(O(1)时间),再结合前缀和还原结果,将时间复杂度从O(qn)优化到O(q+n)。文章详细阐述了一维差分(数组区间修改)和二维差分(矩阵子矩阵修改)的实现原理、边界处理技巧,并提供C++代码模板。通过洛谷P3406和P3397两道典型例题,展示了差分算法在解决实际问题中的高效应用,同时分析了常见误区与优化技巧。差分与前缀和的协同使用能有效解决"多次修改+多次查询"的复杂问题,是算法竞赛中的重要工具。

2301_79248256的博客 1358

算法基础学习笔记——⑤差分

算法基础学习笔记——⑤差分

VLOKL的博客 222
上一篇: 3、服务器性能剖析
下一篇: 4、Schema与数据类型优化
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值