算法--持续更新

IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流) IRS中波束赋形设计源代码学习(持续更新,多多交流) 源代码:论文 Weighted Sum-Rate Maximization for Reconfigurable Intelligent Surface Aided Wireless Networks 源代码 Github网址:https://github.com/guohuayan/WSR-maximization-for-RIS-system 2020/7/11 今天的完成: 1、搞清楚了论文中向量,矩阵的设置在代码中的对应 2、信道参数设置 fu 阅读详情

案例

1、约瑟夫问题

/**
 * @author: yzh
 * @date: 2022/3/24 21:13
 * @version: 1.0
 * @describle: 解决约瑟夫问题
 */
@Slf4j
class SurvivalGaming {
    private People first;

    static class People {
        private String name;
        private int age;
        private People next;
        private boolean alive = true;

        People(String name, int age, People next) {
            this.next = next;
            this.name = name;
            this.age = age;
        }

        void killed() {
            this.alive = false;
        }

        String say() {
            return String.format("'name:%s,age:%d,alive:%b'", this.name, this.age, this.alive);
        }

    }

    public void survivalGame(int count, int startIndex, int nightmare) {
        Assert.isTrue(!(count < nightmare || startIndex < 0), "规则不成立,无法开启");
        this.join(count);
        while (startIndex > 0) {
            first = first.next;
            --startIndex;
        }
        log.info("请选手{}开始报数", first.say());
        while (count >= nightmare) {
            for (int i = 1; i < nightmare - 1; i++) {
                first = first.next;
            }
            final People temp = first;
            final People next = first.next;
            next.killed();
            log.warn("{}选手被杀害", next.say());
            first = first.next.next;
            temp.next = first;
            --count;
        }
        this.survivor(nightmare - 1);
    }

    private void survivor(int num) {
        while (num > 0) {
            log.info("幸存者 {}",first.say());
            first = first.next;
            --num;
        }
    }

    private void join(int count) {
        log.info("请{}为成员依次围成一个圈", count);
        People temp = null;
        for (int i = 0; i < count; i++) {
            if (null == first) {
                first = new People(String.format("参赛者%s号", i + 1), i + 10, null);
                temp = first;
            } else {
                People next = new People(String.format("参赛者%s号", i + 1), i + 10, null);
                temp.next = next;
                temp = next;
                if (i == count - 1) {
                    temp.next = first;
                }
            }
        }
    }


    public static void main(String[] args) {
        SurvivalGaming game = new SurvivalGaming();
        game.survivalGame(10, 0, 5);
    }

}


2、递归

package com.yzhp.algorithm;

import lombok.extern.slf4j.Slf4j;

/**
 * @auth yzh
 * @date 2022/4/22 14:31
 * @describe 递归  斐波那契数列
 */
@Slf4j
public class Recursion {

    /**
     * f(n) = f(n-1) + f(n-2)
     * 时间复杂度:O(2^n)
     * 空间复杂度:O(2^n)
     * 模型:
     * 2^0  2^1 2^2 2^3 ···
     *          f(1)
     *      f(3)
     *          f(2)
     * f(5)
     *          f(2)
     *      f(4)    f(1)
     *          f(3)
     *              f(2)
     */
    public static int fas(int n) {
        if (2 >= n) {
            return 1;
        }
        return fas(n - 1) + fas(n - 2);
    }

    //  优化1:增加数组缓存结果
    /**
     * f(n) = f(n-1) + f(n-2)
     * 时间复杂度:O(n)
     * 空间复杂度:O(n)
     * 模型:
     * 重复值可以在数组取,只需要计算 f(1),f(2),f(3),f(4),f(5)
     *              f(1)
     *      f(3)
     *              f(2)
     * f(5)
     *              f(2)
     *      f(4)            f(1)
     *              f(3)
     *                      f(2)
     */
    public static int fas(int n, int[] cache) {
        if (2 >= n) {
            return 1;
        }
        if (0 == cache[n]) {
            cache[n] = fas(n - 1, cache) + fas(n - 2, cache);
        }
        return cache[n];
    }

    //  优化2:尾递归
    /**
     * f(n) = f(n-1) + f(n-2)
     * 时间复杂度:O(n)
     * 空间复杂度:O(n)
     * 模型:
     * 重复值可以在数组取,只需要计算 f(3),f(4),f(5)
     *      f(3)
     * f(5)
     *              f(2)【已知::ppre】
     *      f(4)            f(1)【已知 = 1::ppre】
     *              f(3)【计算后已知::pre】
     *                      f(2)【已知 = 1::pre】
     */
    public static int fas(int n, int pre, int ppre) {
        if (2 >= n) {
            return pre;
        }
        return fas(n - 1, pre + ppre, pre);
    }

    //  一般模式
    /**
     * 时间复杂度:O(n)
     * 空间复杂度:O(1)
     */
    public static int fas1(int n) {
        if (2 >= n) {
            return 1;
        }
        int f1 = 1, f2 = 1 , f3 = 0;
        for (int i = 3; i <= n; i++) {
            f3 = f1 + f2 ;
            f1 = f2;
            f2 = f3;
        }
        return f3;
    }

    public static void main(String[] args) {
        int n = 45;

        //  普通递归
//        for (int i = 1; i < n; i++) {
//            long l = System.currentTimeMillis();
//            int fas = Recursion.fas(i);
//            log.info("层级: {},结果: {},耗时: {}",i,fas,(System.currentTimeMillis()-l));
//        }
        /**
         *14:54:18.975 [main] INFO com.yzhp.algorithm.Recursion - 层级: 43,结果: 433494437,耗时: 818
         *14:54:20.350 [main] INFO com.yzhp.algorithm.Recursion - 层级: 44,结果: 701408733,耗时: 1375
         */

        //  一般循环
//        for (int i = 1; i < n; i++) {
//            long l = System.currentTimeMillis();
//            int fas = Recursion.fas1(i);
//            log.info("层级: {},结果: {},耗时: {}",i,fas,(System.currentTimeMillis()-l));
//        }
        /**
         *14:53:28.997 [main] INFO com.yzhp.algorithm.Recursion - 层级: 43,结果: 433494437,耗时: 0
         *14:53:28.997 [main] INFO com.yzhp.algorithm.Recursion - 层级: 44,结果: 701408733,耗时: 0
         */

        //  优化1:数据缓存
//        int[] cache = new int[45];
//        for (int i = 1; i < n; i++) {
//            long l = System.currentTimeMillis();
//            int fas = Recursion.fas(i, cache);
//            log.info("层级: {},结果: {},耗时: {}", i, fas, (System.currentTimeMillis() - l));
//        }
        /**
         * 14:54:46.694 [main] INFO com.yzhp.algorithm.Recursion - 层级: 43,结果: 433494437,耗时: 0
         * 14:54:46.694 [main] INFO com.yzhp.algorithm.Recursion - 层级: 44,结果: 701408733,耗时: 0
         */

        //  优化2:尾递归
        for (int i = 1; i < n; i++) {
            long l = System.currentTimeMillis();
            int fas = Recursion.fas(i, 1,1);
            log.info("层级: {},结果: {},耗时: {}", i, fas, (System.currentTimeMillis() - l));
        }
        /**
         * 14:54:46.694 [main] INFO com.yzhp.algorithm.Recursion - 层级: 43,结果: 433494437,耗时: 0
         * 14:54:46.694 [main] INFO com.yzhp.algorithm.Recursion - 层级: 44,结果: 701408733,耗时: 0
         */

    }
}

排序

Level 1

冒泡排序

/**
 * @auth yzh
 * @date 2022/4/22 15:58
 * @describe 冒泡排序
 */
public class BubbleSort {
    /**
     *  时间复杂度:O(n^2)
     *  空间复杂度:O(1)
     *  模型:
     *      5 1 10 3
     *  i=0        1 5 10 3
     *             1 5 10 3
     *             1 5 3 10
     *  i=1        1 5 3 10
     *             1 3 5 10
     *  1=2        1 3 5 10
     */
    public static int[] sort(int[] arr) {
        int l = arr.length, temp = 0;
        for (int i = 0; i < l; i++) {
            for (int j = 0; j < l - 1 - i ; j++) {
                if (arr[j] > arr[j+1]) {
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }

        return arr;
    }

    public static void main(String[] args) {
        int[] arr = {19,6,16,5,20,49,1};
        BubbleSort.sort(arr);
        System.out.println(JSON.toJSONString(arr));
    }
}

选择排序

/**
 * @auth yzh
 * @date 2022/4/22 17:23
 * @describe 选择排序
 *  时间复杂度:O(n^2)
 *  空间复杂度:O(1)
 *  原理:
 *      外层循环:数组每个元素都遍历一次 0 1 2 ... n-1
 *      内层循环:当前下表与后面元素进行比较, n次,n-1次... 1
 *      记录当前下表 i 与后面元素比较,将最小值放在当前数组下标
 */
@Slf4j
public class SelectSort {

    public static int[] sort(int[] arr) {
        long s = System.currentTimeMillis();
        int minIndex = 0, l = arr.length, min = 0;
        for (int i = 0; i < l; i++) {
            minIndex = i;
            for (int j = 1 + i; j < l; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            if (i != minIndex) {
                min = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = min;
            }
        }
        log.info("选择排序用时{}毫秒", (System.currentTimeMillis() - s));
        return arr;
    }

    public static void main(String[] args) {
        int n = 5000;
        int[] arr = new int[n];
        Random random = new Random();
        for (int i = 0; i < n; i++) {
            arr[i] = random.nextInt(100000);
        }

        log.info("原始数组: \r\n{}", JSON.toJSONString(arr));
//        int[] arr = {19,6,16,5,20,49,1};
        SelectSort.sort(arr);
        log.info(JSON.toJSONString(arr));
    }
}

插入排序

/**
 * @auth yzh
 * @date 2022/4/24 14:54
 * @describe 插入排序
 *  时间复杂度:O(n^2)
 *  空间复杂度:O(1)
 *  原理:
 *      1)从数组第二位与第一位开始比较
 *      2)使用临时变量缓存当前位元素值
 *      3)若前位大于后位,则将前位值赋值到后一位(临时值与当前位前位都要比——当前位小于后位就跳出)
 *      4)将临时值赋值到结束位下表后一位(for循环 index-- 多执行一次)
 */
@Slf4j
public class InsertSort {

    public static int[] sort(int[] arr) {
        long s = System.currentTimeMillis();
        int length = arr.length, temp = 0, index = 0;
        //  起始位=1(数组第二元素)
        for (int i = 1; i < length; i++) {
            index = i;
            //  后位 小于 前位
            if (arr[i] < arr[i - 1]) {
                temp = arr[i];
                for (index = i - 1; index >= 0 && temp < arr[index]; index-- ) {
                    arr[index+1] = arr[index];
                }
                arr[index+1] = temp;
            }
        }
        log.info("插入排序用时{}毫秒", (System.currentTimeMillis() - s));
        return arr;
    }


    public static void main(String[] args) {
        int n = 5000;
        int[] arr = new int[n];
        Random random = new Random();
        for (int i = 0; i < n; i++) {
            arr[i] = random.nextInt(100000);
        }
        log.info("原始数组: \r\n{}", JSON.toJSONString(arr));
//        int[] arr = {19,6,16,5,20,49,1};
        InsertSort.sort(arr);
        log.info(JSON.toJSONString(arr));
    }
}

希尔排序

/**
 * @auth yzh
 * @date 2022/4/24 16:20
 * @describe 希尔排序
 * 简介:希尔排序就是对插入排序的直接优化
 * 时间复杂度:[O(nlogn),O(n^2)]之间
 */
@Slf4j
public class ShellSort {


    public static int[] sort(int arr[]) {
        long s = System.currentTimeMillis();
        int length = arr.length;
        int increasement = arr.length;  //  下表间隔值
        do {
            increasement = increasement / 3 + 1;
            for (int i = 0 ; i<increasement;i++){
                for (int j = i+increasement ; j<length;j+=increasement){
                    if (arr[j]<arr[j-increasement]){
                        int k,temp;
                        temp = arr[j];
                        for ( k = j-increasement; k >=0 && temp < arr[k] ; k-=increasement) {
                            arr[k+increasement] = arr[k];
                        }
                        arr[k+increasement] = temp;
                    }
                }
            }
        } while (increasement > 1);
        log.info("希尔排序用时{}毫秒", (System.currentTimeMillis() - s));
        return arr;
    }

    public static void main(String[] args) {
        int n = 10000;
        int[] arr = new int[n];
        Random random = new Random();
        for (int i = 0; i < n; i++) {
            arr[i] = random.nextInt(100000);
        }
//        int[] arr = {8,6,2,5};
        log.info("原始数组: \r\n{}", JSON.toJSONString(arr));
        ShellSort.sort(arr);
        log.info(JSON.toJSONString(arr));
    }
}

LeetCode算法题目(持续更新) LeetCode 算法题目(持续更新) 文章目录LeetCode 算法题目(持续更新)一、题目列表 一、题目列表 题目 描述 更新时间 布隆过滤器和LRU Cache 布隆过滤器python的实现 LRU Cache 的实现 排序算法 插入排序(插入排序、希尔排序) 交换排序(冒泡排序、快速排序、三路快排) 选择排序(选择排序、堆排序) 归并排序(从顶到下的归并排序、从下到上的归并排序) 242. 有效的字母异位词 1. 先排序 阅读详情

相关推荐

VoLTE吞字断续优化方案

网络侧通过各节点探针的数据采集,能够进行RTP和RTCP包的分析,确定各节点的上行或下行丢包情况。1.基于测试语音分析,每2秒中大约8个字,每个字约10个RTP语音包。通话过程中,语音有短暂停顿,收音段听语音中会出现“吞字/断续现象”2.连续丢3~5个RTP以上就可能会出现吞字断续的感觉。下行评价的丢包问题,很难有效指导定界定位分析,无从下手。2.部分终端可能存在RTCP不反馈,导致无法获取丢包。1.语音包为UDP包,无反馈,终端无法判定是否丢包。终端可依据自身的调度反馈或弃包进行上行丢包判决。

m0_73503557的博客 1509

算法整理(一)

1.2 高精度减法 1.3 高精度乘法 1.4 高精度除法 2. 排序 2.1 冒泡排序 2.2 选择排序 2.3 插入排序 2.4 归并排序 求逆序对归并排序,每次将左右两边合并时,左边、右边的内部次序都已经排好,但是左右各个数据之间的大小关系不确定。合并时每次比较左右两边排在最先的数据,如果该数据在右边,表明左边当前与右边的该数据进行比较的数据及左边之后的数据都比右边的该数据大,这些数据的个数要算在逆序对上。 2.5 快速排序 求第k小的数快排的原理就是每次确定一个数在整个序列中的位次,

春弦的博客 1424

Armbian 国内源一键配置:告别卡顿,加速软件更新

本文详细介绍了如何为Armbian系统配置国内软件源,以解决默认国外源导致的更新缓慢、连接超时等问题。通过手动修改配置文件或使用高效的一键换源脚本,可将源切换至清华大学、阿里云等国内镜像站,实现apt更新与软件安装速度的质的飞跃,让Armbian开发体验更加流畅高效。

weixin_29215815的博客 243

需时常复习的算法题目-持续更新中

疫情死亡率:1007-疫情死亡率_牛客竞赛语法入门班顺序结构习题

muchu_优快云的博客 169

Yakit实战:利用验证码识别插件突破Webfuzzer自动化测试瓶颈

本文详细介绍了如何利用Yakit的Webfuzzer模块结合验证码识别插件,突破自动化安全测试中的验证码瓶颈。通过实战演示,讲解了如何部署本地OCR服务、编写热加载脚本,实现从获取验证码到自动识别并替换的全流程自动化,从而让Webfuzzer能够高效、无人值守地进行大规模密码喷洒等测试。

weixin_29323493的博客 281

Altera Cyclone4 EP4CE15F17C8核心板硬件设计避坑指南(附AD09工程文件)

本文深入解析Altera Cyclone4 EP4CE15F17C8核心板硬件设计中的关键问题与解决方案,涵盖电源架构优化、信号完整性处理、热设计及生产调试要点。特别提供经过验证的AD09工程文件,帮助开发者规避常见设计陷阱,提升FPGA项目的成功率与可靠性。

weixin_29159441的博客 295

基础算法总结(持续学习更新中)

主要运用思想(双指针,分治,递归)

2403_87864942的博客 598

微信小程序码 createWxaCodeUnlimit 生成总是报错 41030 的解决方案

41030错误本质上就是路径不合法。路径多写了一个斜杠路径带了参数小程序版本未发布或 app.json 配置不一致。如果确认页面存在,可以通过来跳过检查。微信小程序 getUnlimitedQRCode 官方文档路径前不能加 /,参数放 scene,发布版本要有这个页面,不行就关掉 check_path。

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

算法刷题记录——题解目录汇总(持续更新)

个人算法刷题持续记录文档目录页。

weixin_42826353的博客 749

Hermes 教程 05:多 Agent 编排

本文介绍了Hermes v0.13.0中的四种多Agent协作模式:1)delegate_task快速子任务模式,适合2-3个独立并行任务;2)spawn子Agent模式,实现零成本并行多步流水线;3)tmux交互子Agent模式,支持长期自主任务;4)全新Kanban看板系统,提供持久化AI团队协作框架。各模式在隔离级别、时长、工具访问和适用场景上存在差异,其中spawn模式通过独立上下文窗口实现零上下文成本。文章详细说明了每种模式的使用方法、限制条件和典型应用场景,并提供了具体代码示例和可视化流程图。K

程序猿_三产 531

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

Edward的博客 847

Google核心算法不再通知!全年持续滚动更新

上个月有个做机械设备出口的客户找我,说他的网站从6月中旬开始一直在掉流量,每周掉 5%-8%,一个多月下来核心产品页从第3掉到了第17。 他问我:最近Google是不是又在更新算法?怎么没看到公告? 我去查了Dashboard——确实没公告。3月更新4月8号就结束了,5月更新6月2号也结束了。按常理说,6-7月应该是"平静期"才对。

RD_daoyi的博客 176

Statistics and Machine Learning Toolbox

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

算法刷题记录——标签分类汇总(持续更新)

个人算法刷题持续记录文档的目录页。

weixin_42826353的博客 1391

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【算法设计与分析】持续更新......

本文将根据学习进度,持续更新算法设计与分析的学习总结。 文章目录算法设计与分析1.1算法及复杂性1.2算法复杂性分析 算法设计与分析 1.1算法及复杂性 初步答案:一样的,根号10 1.2算法复杂性分析 ...

嗨Sirius 206

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

算法专题 --持续更新

本博客所涉及的大部分算法均可从网络或者书籍中找到原型。所有算法都将在此文中建立目录索引。   撰写本系列的一个初衷主要是为了自我学习,输出,文中所述的每一个算法都配有详细的图解和自己的理解与感悟。若有不当之处还望谅解,欢迎沟通交流。

一个码农的前三十年 714

⭐算法OJ⭐经典题目分类索引(持续更新)

在编程竞赛和算法学习中,Online Judge(OJ)平台是程序员们磨练技能的重要工具。OJ平台上的题目种类繁多,涵盖了从基础数据结构到复杂算法的各个方面。为了更好地理解和掌握这些题目,对其进行分类是非常有必要的。这篇索引文章会持续更新,欢迎大家点赞收藏!

大葱的田地🌱 2054

算法模板持续更新

基础算法 排序 二分 高精度 前缀和与差分 双指针算法 位运算 离散化 区间合并数据结构 链表与邻接表:树与图的存储 栈与队列:单调队列、单调栈 kmp Trie 并查集 堆 Hash表搜索与图论 DFS与BFS 树与图的遍历:拓扑排序 最短路 最小生成树 二分图:染色法、匈牙利算法数学知识 质数 约数 欧拉函数 快速幂

weixin_60569662的博客 769

【持续更新】MARL 算法汇总

MARL 算法汇总0 Preliminaries在多智能体强化学习算法中,两个主要的技术指标为合理性与收敛性。1.合理性(rationality):在对手使用一个恒定策略的情况下,当前智能体能够学习并收敛到一个相对于对手策略的最优策略。2.收敛性(convergence):在其他智能体也使用学习算法时,当前智能体能够学习并收敛到一个稳定的策略。通常情况下,收敛性针对系...

见见大魔王 3572

ACM所有算法大全(持续更新)

转载自:http://blog.sina.com.cn/s/blog_adb6743801019h29.html ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分...

xuanweiace的博客 2万+

算法持续更新

那么 说明 head.val = 1 (我就按照上面定义的指针 , val代表存放的是数据, next代表存放的是下一个结点地址) 因为head其实也是一个类,所以 head. 属性(head.val) 这是java基础,我就不说这么多了 ,反正就是。即使你Head = null ,但是我们p已经存放了那个节点的地址啊,我们还是可以找到那个节点,他还是好好的。即使你Head = null ,但是我们p已经存放了那个节点的地址啊,我们还是可以找到那个节点,他还是好好的。

qq_50560491的博客 848

ADMM算法框架(未完待续 持续更新)

首先给出ADMM计算框架。背景知识查阅网络,这里不做赘述。实际是为了“分布式”地解决一类问题。 首先是问题表述:min&amp;amp;nbsp;f(x)+g(z)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;s.t.&amp;amp;nbsp;Ax+Bz=c&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;n

自由之畔 3144

持续更新我对算法理解

一、冒泡排序:两两比较,大的放后面,小的放前面;使用两个for循环,一个数就不用比了,所以第一个for循环遍历次数n-1次,第二个for比较次数n function sort (arr,n){ let temp for(let i=0;i<n-1;i++){ for (let j=i+1;j<n;j++) { if(arr[i]<arr[j]){ temp = arr[j] .

shimeifang11的博客 261

所有专栏内容均注明原创或转载,获取资源可以扫描专栏二维码,如有侵权请私信联系。专注于编程算法分享,持续更新,欢迎关注本专栏。

专注于编程算法分享,持续更新,欢迎关注本专栏。

2301_77854234的博客 313

STL的算法中,一些很简练的算法——持续更新

1.在序列1中寻找序列2第一次出现的位置 在序列1中寻找序列2第一次出现的位置在 SGI_STL 中采用了以第一个序列中的每一个元素作为标志的方法向后匹配,直到匹配到第二个序列完整出现。假设第一个序列的长度为n,第二个序列的长度为m,在最坏的情况下,该算法的复杂度为 O((n-m)*m)。该算法的亮点在于写得特别简介明了。具体代码如下: template InputIterator1 __s

Virtual_Func的博客 463

【算法】持续更新ing

算法学习模板

weixin_50312169的博客 192
上一篇: 创建虚拟机+搭建ES集群
下一篇: JAVA 扩展--持续更新
?luck
博客等级 码龄7年 21粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值