搜索内容

包含标签:算法 的文章
  • Java剑指 Offer II 090. 环形房屋偷盗(击败100%用户)
    其他

    Java剑指 Offer II 090. 环形房屋偷盗(击败100%用户)

    题目: 一个专业的小偷,计划偷窃一个环形街道上沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。 示例 : 输入:nums = [2,3,2] 输出:3 解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。 思路: 跟上一题偷钱区别在于上一题的房子排布是线性结构,隔着偷可以从头到尾 这一次是环形结构,也就是上一次的结构但是在结尾时如果你从第一个房子起偷,你就不能偷最后一个房子。如果你从第二个房子起偷,那么可以偷最后一个房子。判断一下就可以。 复杂度: 时间:循环O(n)。 空间:用了Arrays.copyOfRange,O(n)。 代码: //先处理特殊情况
    admin 今天
  • 【回文数】本世纪(21世纪)剩下的回文日期数不多了
    其他

    【回文数】本世纪(21世纪)剩下的回文日期数不多了

    前言 早上,在上班的地铁上,刷朋友圈的时候,看到了这样一个日期:20211202 看着这个数字,脑子停顿了一下,这个数字不就是一个回文数么? 于是,心中顿时产生一个想法,日期回文数有多少个呢? 回文数 回文 是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如 “我为人人,人人为我” 等 在数学中也有这样一类数字有这样的特征,称为回文数(palindrome number) 回文数:正读倒读都一样的整数 想法 那从我出生到现在,会有多少个回文日期数呢? 于是,我打开电脑,敲下了以下代码: 语言:Swift // 一天的秒数 let interval: TimeInterval = 86400 // 日期格式化 let formatter = DateFormatter() formatter.dateFormat = "yyyyMMdd" print("=========
    admin 今天
  • iOS LeetCode ☞ 除法求值
    其他

    iOS LeetCode ☞ 除法求值

    给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。 返回 所有问题的答案 。如果存在某个无法确定的答案,则用 -1.0 替代这个答案。如果问题中出现了给定的已知条件中没有出现的字符串,也需要用 -1.0 替代这个答案。 注意:输入总是有效的。你可以假设除法运算中不会出现除数为 0 的情况,且不存在任何矛盾的结果。 示例 1: 输入:equations = [["a","b"],["b","c"]], values
    admin 今天
  • GitLab CI/CD概念
    其他

    GitLab CI/CD概念

    通过软件开发的持续方法,您可以持续构建、测试和部署迭代代码更改。这种迭代过程有助于减少您基于有缺陷或失败的先前版本开发新代码的机会。使用这种方法,您可以努力减少从开发新代码到部署的人工干预,甚至根本不需要干预。 连续法的三种主要方法是: 持续集成持续交付持续部署 持续集成 考虑一个应用程序,它的代码存储在 GitLab 的 Git 存储库中。开发人员每天多次推送代码更改。对于每次推送到存储库,您可以创建一组脚本来自动构建和测试您的应用程序。这些脚本有助于减少您在应用程序中引入错误的机会。 这种做法称为持续集成。提交给应用程序的每个更改,甚至是开发分支,都会自动且连续地构建和测试。这些测试可确保更改通过您为应用程序建立的所有测试、指南和代码合规性标准。 GitLab 本身就是一个使用持续集成作为软件开发方法的项目示例。对于项目的每次推送,都会针对代码运行一组检查。 持续交付 持续交付是超越持续集成的
    admin 今天
  • 遗传算法详解 附python代码实现
    其他

    遗传算法详解 附python代码实现

    遗传算法 看了好久才把遗传算法搞懂,附一个链接这个是我看过有关遗传算法讲解最详细的一篇https://blog.csdn.net/ha_ha_ha233/article/details/91364937 什么是遗传算法 遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:“适者生存,不适者淘汰”,将该理论以算法的形式表现出来就是遗传算法的过程。 主要过程 初始化一个种群,种群中的个体DNA表示种群中的个体进行交叉变异产生后代根据后代中每个个体适应度进行自然选择、优胜劣汰不断迭代产生最优种群 例子 以求解二元函数为例,体会遗传算法如何解决最优化问题 def F(x,y): return 3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)- 10*(x/5 - x**3 - y**5)*np.exp(-x**2-y**2)- 1/
    admin 今天
  • 顺序栈的初始化,入栈,出栈,求栈长度,遍历操作(C语言)
    其他

    顺序栈的初始化,入栈,出栈,求栈长度,遍历操作(C语言)

    #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2 int i, n, e, j, x, num; //顺序栈 #define MAXSIZE 100 typedef struct { int* top;//栈顶指针 int* base;//栈底指针 int stacksize;//栈可用的最大容量 }SqStack; //1.顺序栈的初始化 int InitSqStack_S(SqStack& S) { S.base = (int*)malloc(sizeof(int) * MAXSIZE); if (!S.base) exit(OVERFLOW);//存储分配失败 S.top = S.base;//栈顶指针等于栈底指针,表示空栈 S.stacksize = MAXSIZE; return OK; } //2.顺序栈的入栈 int SqStackPush_S(SqStack &S, int e) {//将元素
    admin 今天
  • Pytorch学习-tensorboard的使用
    其他

    Pytorch学习-tensorboard的使用

    Pytorch学习-tensorboard的使用 1 Tensorboard简介运行机制安装及测试 2 SummaryWriter实例的使用教程(1)初始化summaryWriter的方法(2)不同类型数据的记录1)数字 scalar使用样例2) 直方图 histogram使用样例3) 运行图 graph !!官方样例 4) 图片 image (pillow库支持)5) 嵌入向量embedding 1 Tensorboard简介 参考链接1安装: 参考链接2使用: TensorBoard:TensorFlow中强大的可视化工具; 支持标量、图像、文本、音频、视频和Embedding等多种数据可视化; 运行机制 在python脚本中记录可视化的数据;记录的数据会以event file(事件文件)存放到硬盘中;在终端使用TensorBoard读取event file,Tens
    admin 今天
  • ubuntu更换清华源
    其他

    ubuntu更换清华源

    备份原有的软件源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.copy 编辑 sudo gedit /etc/apt/sources.list 找对应版本的清华源 网址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 更新 sudo apt-get update
    admin 今天
  • LeetCode 729. 我的日程安排表 I — set
    其他

    LeetCode 729. 我的日程安排表 I — set

    我的日程安排表 I 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。 当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。 日程可以用一对整数 start 和 end 表示,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end 。 实现 MyCalendar 类: MyCalendar() 初始化日历对象。 boolean book(int start, int end) 如果可以将日程安排成功添加到日历中而不会导致重复预订,返回 true 。否则,返回 false 并且不要将该日程安排添加到日历中。 示例: 输入: [“MyCalendar”, “book”, “book”, “book”] [[], [10, 20], [1
    admin 今天
  • 建立中序线索二叉树,并分别从第一个结点和最后一个结点遍历
    其他

    建立中序线索二叉树,并分别从第一个结点和最后一个结点遍历

    任务 建立一颗中序线索二叉树;分别从第-一个结点和最后一个结点出发输出中序遍历结果;输出某结点的前趋和后继结点 思路: 线索二叉树结构类型 typedef struct treenode{ char data; struct treenode *lchild,*rchild; int ltag,rtag; //记录指针与指向孩子结点还是后继或前驱 tag为0表示孩子,tag为1表示线索 }treenode,*tree; 先建立一个二叉树 //使用先序建立二叉树 void buildtree(tree &t){ char ch; ch = getchar(); if(ch=='#') t = NULL; else{ t = (treenode *)malloc(sizeof(treenode));
    admin 今天
  • 3 无重复最长子串【c++,哈希表】
    其他

    3 无重复最长子串【c++,哈希表】

    解题思路 滑动窗口+哈希表 用unordered_maptemp_s记录单个字符和下标,记录每一次开始的下标left; 如果第i个字符不在哈希表中,就把这一个字符加进去,如果第i个字符在哈希表中,则left从i+1开始,子串长度为i-left+1 注: 找到的某一个字符不仅要在哈希表中,而且要在left和i之间才算,所以这里限制 if (it != temp_s.end()&&it->second>=left) 代码 class Solution { public: int lengthOfLongestSubstring(string s) { if (s.size() == 0) return 0; unordered_maptemp_s; int left = 0;
    admin 今天
  • Java剑指 Offer II 089. 房屋偷盗(击败100%用户)
    其他

    Java剑指 Offer II 089. 房屋偷盗(击败100%用户)

    题目: 一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 : 输入:nums = [1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。      偷窃到的最高金额 = 1 + 3 = 4 。 思路: 和上一题基本相同。动态规划 用dp[n]来表示前n座房子能偷得最多的钱 前n座房子最多偷的钱要么就是偷到了n-1座房子,这个时候就不能偷n的钱了 此时dp[n] = dp[n-1]; 还有一种可能性,就是当前房子的钱加上前n-2间房子钱要大于这个前n-1房子钱 此时dp[n] = dp[n-2]+nums[n] 两者取大就可以了 可以从第一间或者第二间房子起偷。 可以优化一下空间复杂度
    admin 今天
  • 高频leetcode排序部分:88. 合并两个有序数组
    其他

    高频leetcode排序部分:88. 合并两个有序数组

    88. 合并两个有序数组 难度简单1201 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例 1: 输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]解释:需要合并 [1,2,3] 和 [2,5,6] 。 合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。 示例 2: 输入:
    admin 今天
  • 1252: [蓝桥杯2015初赛]奇妙的数字
    其他

    1252: [蓝桥杯2015初赛]奇妙的数字

    题目描述 小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。你能猜出这个数字是多少吗? 输出 请输出该数字,不要输出任何多余的内容。 时间限制: 1 Sec 内存限制: 256 MB 原题链接:http://oj.ecustacm.cn/problem.php?id=1252 #include using namespace std; int main() { set n; for(int i=10;i<100;i++){ int pf=i*i;//计算平方 int lf=pf*i;//计算立方 for(int j=pf;j>0;j/=10){ n.insert(j%10); } for(int j=lf;j>0;j/=10){ n.insert(j%10); } //调试部分
    admin 今天
  • 506相对名次【c++,map】
    其他

    506相对名次【c++,map】

    解题思路 map底层实现是一棵红黑树,按照key值升序排列,题目给出分数各自不同 分情况讨论: n=1:这个人就是金牌n=2:两个人比较一下得出金银牌n>=3 用一个maptemp来存放分数和下标值(下标值代表第几位)。根据排序的结果从第1到n-3位的名次就是他们分数的名次,我们已知map是升序排列,因此在map中的第一位名次是n,以此类推。在map中的最后三位分别是金银铜牌。 map查找的时间复杂度是O(logn),最终的时间复杂度是O(n*logn) 代码 class Solution { public: vector findRelativeRanks(vector& score) { int n=score.size(); vectoranswer(n); if(n==1){
    admin 今天
  • day1:两数之和(leetcode)
    其他

    day1:两数之和(leetcode)

    1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 输出:[1,2] 示例 3: 输入:nums = [3,3], target = 6 输出:[0,1] 提示: 2 <= nums.length <= 104 -109 <= nums[i] <= 109 -109 <= target <= 109 只会存在一个有效答案
    admin 今天
  • 数据的一个整体移动
    其他

    数据的一个整体移动

    先说说我对这题的感受,最开始我觉得这个题目很难,但是后面才知道,这个题目没有我想想的那么复杂,所以还是得多写多看,记录一下自己的这个学习的情况和记录  起初我一直在想怎么去弄这个循环,后来发现,单纯的只用打印出来就行了,分为两段打印就欧克了,算是比较简单的 #include int main(){     int m,n;     scanf("%d%d",&n,&m);     m=(m
    admin 今天
  • 从rookie到基佬~007:Visio 网络模型 框架图 输入 数学公式 符号
    其他

    从rookie到基佬~007:Visio 网络模型 框架图 输入 数学公式 符号

    一天一个变弯小技巧 今日份洗脑:Visio 画深度学习的网络模型框架图如何输入数学公式和符号 结论:工具栏切换至【插入】操作界面,然后点击【对象】,在弹框中选择【Microsoft公式3.0】 操作演示如下 步骤一:工具栏切换至【插入】操作界面,然后点击【对象】 步骤二:在弹框中选择【Microsoft公式3.0】 步骤三:请开始你的表演 步骤四:一键三连长智慧,读书人的事,能有什么坏心眼呢?
    admin 今天
  • String Builder (15 分)
    其他

    String Builder (15 分)

    0123456789101112 is a string build up for n=12. Then, in all the digits from index a to index b, count the appearence of c. For the string above, 2 5 is: 2345 Thus the appearence of 3 is 1. Input Format: Four positive numbers, n, a, b and c, where a
    admin 今天
  • 1138 Postorder Traversal (25 分)
    其他

    1138 Postorder Traversal (25 分)

    Suppose that all the keys in a binary tree are distinct positive integers. Given the preorder and inorder traversal sequences, you are supposed to output the first number of the postorder traversal sequence of the corresponding binary tree. Input Specification: Each input file contains one test case. For each case, the first line gives a positive integer N (≤ 50,000), the total number of nodes in the binary
    admin 今天
  • 变量相关性分析
    其他

    变量相关性分析

    变量相关性分析   接下来,我们尝试对变量和标签进行相关性分析。从严格的统计学意义讲,不同类型变量的 相关性需要采用不同的分析方法,例如连续变量之间相关性可以使用皮尔逊相关系数进行计算, 而连续变量和离散变量之间相关性则可以卡方检验进行分析,而离散变量之间则可以从信息增益 角度入手进行分析。但是,如果我们只是想初步探查变量之间是否存在相关关系,则可以忽略变 量连续/离散特性,统一使用相关系数进行计算,这也是pandas中的.corr方法所采用的策略。 计算相关系数矩阵   当然,首先我们可以先计算相关系数矩阵,直接通过具体数值大小来表示相关性强弱。不过 需要注意的是,尽管我们可以忽略变量的连续/离散特性,但为了更好的分析分类变量如何影响标 签的取值,我们需要将标签转化为整型(也就是视作连续变量),而将所有的分类变量进行哑变 量处理:
    admin 今天
  • keras bert 文本分类实战(学习)
    其他

    keras bert 文本分类实战(学习)

    1 .目标 对给出的数据集,判断给出的text,属于什么类型。 数据集: 2.数据处理 将文本(text)和标签(label)转成计算机可以识别的数字。 首先读取数据,将数据打乱对label :将label转化为数字对应的数字,并保存 例如: 构建全部的数据集,变成 [(text1,lable1),(text2,lable2)…]的形式 例如: 划分训练集和验证集 接下来处理text部分,需要将text部分处理成为计算机可以识别的数字,根据bert给的词典进行映射到对应id (1) 根据bert给的词典建立 词典字典(词到id的映射) # 将词表中的词编号转换为字典 tokenDict = {} with codecs.open(vocabPath, 'r', encoding='utf-8') as reader: for line in reader: tok
    admin 今天
  • 第十五天小结:多线程
    其他

    第十五天小结:多线程

    01. 程序(programm) 概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 02. 进程(process) 概念:程序的一次执行过程,或是正在运行的一个程序。 说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域   03. 线程(thread) 概念:进程可进一步细化为线程,是一个程序内部的一条执行路径。 说明:线程作为调度和执行的单位,每个线程拥独立的运行栈和程序计数器(pc),线程切换的开销小。 内存结构 进程可以细化为多个线程。 每个线程,拥有自己独立的:栈、程序计数器 多个线程,共享同一个进程中的结构:方法区、堆。  04. 单核CPU与多核CPU的理解 单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务(现在的服务器都是多核的) 一个Java应用程序java.exe,其实至少三个线程:main()主线程,gc()垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。 05
    admin 今天
  • 350. 两个数组的交集 II
    其他

    350. 两个数组的交集 II

    链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9] 提示: 1 <= nums1.length, nums2.length <= 1000 0 <= nums1[i], nums2[i] <= 1000 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums
    admin 今天
  • 学习完数组的总结
    其他

    学习完数组的总结

    ▪ 一维数组入门 – 数组的特点:长度固定,连续空间,存储同一种类型数据 – 数组内存分配图 – for-each循环:简单、主要用于遍历操作 ▪ 一维数组的应用 – 数组优缺点 ▪ 优点:按照索引查询效率高 ▪ 缺点:添加删除元素效率低;按照内容查询效率低(无序) – 冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码 – 数组类型做形参 ▪ 二维数组: – 实质是每个元素是一维数组的一维数组;二维数 组内存分配图
    admin 今天
  • 一. 数组_前缀和数组_303. 区域和检索 – 数组不可变
    其他

    一. 数组_前缀和数组_303. 区域和检索 – 数组不可变

    题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums 初始化对象 int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], … , nums[j])) 示例: 输入: [“NumArray”, “sumRange”, “sumRange”, “sumRange”] [[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]] 输出: [null, 1, -1, -3] 解释: NumArray numArray = new NumArray([-2, 0, 3, -5,
    admin 今天
  • 选择排序
    其他

    选择排序

    思想: i:即将要放的位置下标,从0地址开始依次向后走 j:从初始位置依次遍历查找最小值 min:先赋第一个值为初值,通过一个个比较,更替最小值min minIndex:保存最小值的下标 //minIndex存在的意义:当查找到当前无序序列中最小值min后,如果直接将min与i位置交换,会导致原序列改变(eg:123045->023045,min=1) 从有序序列内选出最小序列,将最小的放到最前面(放到i处), j目前为当前下标,与min比较。找到最小值后,保存下标,i与min交换, 代码实现: #include #include void Swap1(int *p,int*q) { int temp = *p; *p = *q; *q = temp; } //补充,对于一个数组不同下标的交换 void Swap2(int *arr,int index1,int index2) { int temp = arr[index1]; arr[index1] =
    admin 今天
  • LeetCode刷题笔记 双指针 碰撞指针
    其他

    LeetCode刷题笔记 双指针 碰撞指针

    碰撞指针简介 碰撞指针 Opposite directional:两个指针指向同一线性表,但是遍历方向相反,一个指针指向开头,另一个指向末尾,它们相向移动直到相遇或满足其他特殊条件为止 344 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。 输入一个字符数组,输出将其反转的字符数组 输入:s = [“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 解析: ​ 本题使用双指针可以快速简单地解决。我们定义一对碰撞指针分别指向字符数组的头和尾,然后循环执行如下两步,直到两指针相遇循环终止: 交换 head 和 tail 指向的元素head 和 tail 相向移动一步 class Solution { public: void reverseString(vector& s) { int head = 0
    admin 今天
  • python list.sort()根据多个条件排序
    其他

    python list.sort()根据多个条件排序

    问题需求 给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。 若无答案,则返回空字符串。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-word-in-dictionary 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 于是想根据: 长度来排序长度相同的根据字典顺序(a->z)进行排序 有2个条件 实现 words.sort(key = lambda c: (-len(c), c)) 解释: 条件1:长度,不想写reverse=True,所以加了负号 条件2:字母本身,即lambda函数返回元组的第二个元素c 对list.sort()有不明白的可以参考: py
    admin 今天
  • C++解OJ题——合并两个有序数组(每天一个小技巧)
    其他

    C++解OJ题——合并两个有序数组(每天一个小技巧)

    原题如下:   给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。   请你合并 nums2 到 nums1 中,使合并后的数组同样按非递减顺序排列。   注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 审题:   数组本身有序,将两个数组合并为一个数组,合并后的数组依旧要保持有序。合并到nums1数组中,大小已经给定。并且由其解释的信息要求所设计的算法是一个稳定的算法。 代码设计:   根据题干描述信息可以得出,合并后的数组的最后一个位置的数据是原两个数组中最大的一个数据。而这最大的一个数据来源于两数组有效数据的最后一个的大者。同理
    admin 今天
  • C++面向对象之虚函数
    其他

    C++面向对象之虚函数

    #include using namespace std; class Human{ public: virtual void buyTicket(){ cout<<"Human buy ticket"<< endl; } }; class Teacher: public Human{ public: virtual void buyTicket(){ cout<<"Teacher buy ticket"<< endl; } }; class Student: public Human{ public: virtual void buyTicket(){ cout<<"student buy ticket"<< endl; } }; int main() { Human *p; p = new Teache
    admin 今天
  • 任意两个数之间的随机数
    其他

    任意两个数之间的随机数

    //得到任意两个数之间的随机数 function getRandom(x,y) { var m=Math.max(x,y) var n=Math.min(x,y) var getRandom=Math.round(Math.random()*(m-n)+n) console.log(getRandom); } getRandom(4,6)
    admin 今天
  • LeetCode 698. 划分为k个相等的子集 –排序+搜索
    其他

    LeetCode 698. 划分为k个相等的子集 –排序+搜索

    划分为k个相等的子集 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4 输出: True 说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。 提示: 1 <= k <= len(nums) <= 16 0 < nums[i] < 10000 题解 和这个题目一个套路:LeetCode 473. 火柴拼正方形 --排序后+深度优先搜索。 AC代码 class Solution { public: int dp[20]; bool dfs(int index,vectornums,int k,int sum) { if(index>=nums.size())
    admin 今天
  • 滑雪 (记忆化搜索)
    其他

    滑雪 (记忆化搜索)

    滑雪 给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。 矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。 一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。 当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。 下面给出一个矩阵作为例子: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 在给定矩阵中,一条可行的滑行轨迹为 24−17−2−1。 在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−1,沿途共经过 25 个区域。 现在给定你一个二维矩阵表示滑雪场各区域的高度,请你找出在该滑雪场中能够完成的最长滑雪轨迹,并输出其长度(可经过最大区域数)。 输入格式 第一行包含两个整数 R 和 C。 接下来
    admin 今天
  • MyBatis基本使用
    其他

    MyBatis基本使用

    1、mybatis <=或这个>=提示错误Tag name expecte 使用转义 DATE_SUB(CURDATE(), INTERVAL 31 DAY) <= DATE(created) 转义对照表 常见转义对照表 < < > > & & ' , " " 2、select语句示范