草庐IT

01.两数之和

全部标签

【JD算法题】定义一个数组的权值为,该数组最大值的出现次数。求长度为n且每个元素范围都在[1,n]的所有数组的权值之和。

Problem小红定义一个数组的权值为,该数组最大值的出现次数。例如[2,3,3,4]的权值为1,[2,3,3,3]的权值为3.小红想知道,长度为n,且每个元素范围都在[1,n]的数组(显然有n^n个数组),这些数组的权值之和是多少?由于该数可能过大,请对109+710^9+7109+7取模。输入描述:一个正整数n。1输出描述:所有数组的权值之和。示例:输入:2;输出:6思考采用回溯法,像写排列数一样列出所有情况。会超时考虑更普适的方法,以内存换时间:考虑长度为n的数组,可能的权值为1,2,3,4,…,n;其中,每种权值可以搭配“该数组的最大值”为1,2,3,4,…,n的情况。由此可以构建一个

力扣算法刷题Day42|动态规划:01背包问题 分割等和子集

力扣题目:01背包问题(二维数组)刷题时长:参考题解解题方法:动态规划+ 二维dp数组复杂度分析时间空间问题总结理解递推公式困难本题收获动规思路:两层for循环,第一层i遍历物品,第二层j枚举背包容量以内所有值确定dp数组及下标的含义:dp[i][j]表示从下标为[0-i]的物品范围中任意取,放进容量为j的背包后价值总和的最大值确定递推公式:dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i])当背包容量小于物品重量,不放物品,此时价值总和为dp[i-1][j]。即当物品i的重量大于背包j的重量时,物品i无法放进背包中,所以背包内的价值依然

算法记录 | Day01(数组01)

二分查找移除元素704题:二分查找【思路】有序数组按升序排序,如何找到目标值?时间复杂度O(logN),主要通过取中间点来节省遍历的次数,重点在于边界值的判断,找到合适的那一半数据空间。classSolution{publicintsearch(int[]nums,inttarget){//条件里已为升序,不再单独排序//确认数组左右边界intleft=0;intright=nums.length-1;//此处结束循环判断使用下标while(leftnum){//目标值落在右半段。移动筛选区间的左边界,减少一半选择范围left=mid+1;}else{//目标值落在左半段。移动筛选区间的右边界

LeetCode 1.两数之和

给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]Python最容易想到的方法是枚举数组中的每一个数x,寻找数组中是否存在target-x当我们使用遍历整个数组的方式寻找target-x时,需要注意到每一个位于x之前的元素都已经和x匹配过,因此不需要再进行匹配。而每一个元素不能被使用两次,所以我们只需要在x后面的元素中寻找targe

【算法专题突破】双指针 - 四数之和(8)

目录1.题目解析2.算法原理3.代码编写写在最后:1.题目解析题目链接:18.四数之和-力扣(Leetcode) 这道题跟三数之和也是一样的,题目很好理解,就是四个数的和等于target的情况,且这四个数不能重复。2.算法原理首先还是暴力解法:排序+暴力枚举+set去重我们当然是用优化的解法:1.依次固定一个数a2.然后在后面的区间,找到他们的和为target-a的数3.而三数之和,也是固定一个数b,然后找出他们的和为target-a-b的数但是我们也要注意,需要跳过重复元素。3.代码编写classSolution{public:vector>fourSum(vector&nums,longl

【FusionInsight 迁移】HBase从C50迁移到6.5.1(01)迁移概述

【FusionInsight迁移】HBase从C50迁移到6.5.1(01)迁移概述HBase从C50迁移到6.5.1(01)迁移概述迁移范围迁移前的准备HDFS文件检查确认HBase迁移目录确保数据落盘停止老集群HBase服务停止新集群HBase服务HBase从C50迁移到6.5.1(01)迁移概述项目上最近全新部署了FusionInsightHD6.5.1大数据集群,并且希望将老集群FusinInsightHDC50的所有业务都迁移到新集群上。由于在老集群C50上的HDFS、HBase中存在有大量的业务数据,因此将业务从C50迁移到6.5.1的过程中,就需要将C50上的业务数据同步迁移到新

【五一创作】网络协议与攻击模拟-01-wireshark使用-捕获过滤器

协议TCP/IP协议簇网络接口层(没有特定的协议)PPPOE物理层数据链路层网络层:IP(v4/v6)ARP(地址解析协议)RARPICMP(Internet控制报文协议)IGMP传输层:TCP(传输控制协议)UDP(用户数据报协议)应用层:都是基于传输层协议的端口,总共端口0~655350~1023HTTP—tcp80HTTPS-----TCP443DHCPDNSHTTPHTTPSFTPSMTPPOP3IMAP流量抓取工具(wireshark)一、网卡wireshark是对主机网卡上的数据流量进行抓取1、网卡模式混杂模式:不管目的是否是自己,都接收非混杂模式:默认情况下,主机的网卡处于此模式

动态规划-01背包问题(python)

对于动态规划问题,就是牺牲空间来提高时间,通过将一个个小问题的答案存储起来,直接供给后面问题求解,避免重复的运算,从而提高效率,这就是动态规划的思想。下面我们通过一个经典的01背包问题来了解动态规划的解题方法吧(文末附上完整代码)首先,将每个物品的体积以及价值存放在列表中,代码和运行结果如下: 可以看到,我们将三个物品信息放入列表中,第一个元素用[0,0]占位,使列表下标就是物品对应的序号,便于我们对代码的理解。接下来我们将列表arr和背包容量bag传入函数进行运算,函数代码如下:首先创建一个列表value,一共(bag+1)列,len(arr)行,先全部填充为0背包容量物品012345000

LeetCode 002:两数相加

一、题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0 开头。示例:输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8]解释:342+465=807.二、解题思路 我们可以先举例,比如4567+567,我们发现计算过程是4+5,5+6,6+7,7+0。我们可以将长度较短的数后面补零,然后再按顺序加,并且考虑进位。代码如下:/***Definitionforsingly-linkedlist.*structL

自动化运维——ansible (五十二) (01)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录一、概述1.1 为什么要用自动化运维软件1.2自动化运维1.3 自动化运维要注意的方面1.4自动化运维主要关注的方面 1.5 常见的开源自动化运维软件1.6 自动化运维软件一般安装在哪二、ansible2.1概念2.2特点2.3环境搭建2.4实验过程服务器分组三、模块ansible模块hostname模块file模块(重点)stat模块(了解)copy模块(重点)fetch模块user模块group模块cron模块yum_repository模块yum模块(重点)service模块(重点)script模块提示:以下是本篇文章正