- 博客(297)
- 资源 (20232)
- 问答 (1)
- 收藏
- 关注
原创 循环 判断 回文数
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。时间限制:1.0s 内存限制:512.0MB。按从小到大的顺序输出满足条件的四位十进制数。
2022-12-15 08:20:09 418 1
原创 查询身份证号归属地,查询ip所有地
Pattern p3 = Pattern.compile("\\d{4}年\\d{2}月\\d{2}日");Pattern p2 = Pattern.compile("男|女");System.out.println("未知错误异常");System.out.println("网络异常");System.out.println("未找到");
2022-12-15 08:20:02 896
原创 回文数 循环 条件语句
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。123321是一个非常特殊的数,它从左边读和从右边读是一样的。按从小到大的顺序输出满足条件的整数,每个整数占一行。时间限制:1.0s 内存限制:512.0MB。输入一行,包含一个正整数n。回文数 循环 条件语句。
2022-12-14 13:38:37 287
原创 要求实现字符逆序。
System.out.println("反转后:" + newStr.toString());System.out.println("反转后:" + newStr);System.out.println("反转前:" + str);System.out.println("反转前:" + str);
2022-12-14 13:38:30 337 1
原创 要求实现字符逆序
System.out.println("反转后:" + newStr.toString());System.out.println("反转后:" + newStr);System.out.println("反转前:" + str);System.out.println("反转前:" + str);
2022-12-13 20:33:21 296
原创 贪心算法解决单源最短路径问题
参考教材:算法设计与分析(第3版) 王晓东 编著 清华大学出版社贪心算法总是做出在当前看来最好的选择,也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的局部最优选择。贪心算法的基本要素1. 贪心选择性质指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。2. 最优子结构性质当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。拿单源最短路径当例子,从顶点5到顶点1的最短路径
2022-12-13 10:18:15 2108
原创 【PAT】A1080. Sort with Swap(0,*)(贪心算法,超时处理)
@(PAT)链接:https://www.patest.cn/contests/pat-a-practise/1067思路:每次只准将数列的0和一个数交换,求交换的最少次数。需要注意的地方:1. 存数数据的方式,一开始使用的是直接一个vector直接把数组存起来,这样的话会导致遍历超时。这里使用的方法是按照index用vector把每个数字所在的位置存储起来,类似map,这样就能够利用所给的数是0-N这个条件,避免超时。2. 一开始有2个点没过,原因是当0在位置0的时候,寻找与0交换的位置每次都从1
2022-12-13 10:17:48 89
原创 力扣392-判断子序列——贪心算法
题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。解题思路 分别建立两个指针 indexs 和 indext 指向 s 和 t 的首部;分别对比 indexs 和 indext 的值;如果相等,indexs 更新+1;直到 s 和 t 都遍历完;与其说这是贪心,我倒是感觉更像暴力。 输入输出示例代码
2022-12-12 17:53:48 183
原创 hudu 1050 sort oj上的易错点 贪心算法
很容易的一道题,用的贪心算法。开始sort中的comp函数返回int,在本地运行时无论怎么测试都是对的,就是过不了OJ。int comp(ss a,ss b){ return a.s < b.s;}原来OJ上只能让comp返回bool才能过
2022-12-11 09:08:59 90
原创 HDU 2037 贪心算法 电视节目安排
Input输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。Output对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。Sample Input121 33 40 73 815 1915 2010
2022-12-11 09:08:52 268
原创 1789 Doing Homework again 倒叙思想的贪心算法
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem DescriptionIgnatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the home
2022-12-10 14:39:18 95
原创 nyoj 题目1036 非洲小孩 贪心算法
时间限制:1000 ms | 内存限制:65535 KB难度:2描述家住非洲的小孩,都很黑。为什么呢?第一,他们地处热带,太阳辐射严重。第二,他们不经常洗澡。(常年缺水,怎么洗澡。)现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)每个小孩有一个时间段能够洗澡。并且,他们是可以一起洗的(不管你是男孩是女孩)。那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的“澡”神啊。“澡”神有一个时间表,记录着该部落的小孩,什么时候
2022-12-10 14:39:11 126
原创 对于一个任意输入的少于200字节的字符串,把它按‘-’分成若干子串(子串最多20个),输出原始字符串和每个子串,要求能依次处理用户输入的多个字符串,直到用户输入字符串“0”时程序退出。
对于一个任意输入的少于200字节的字符串,把它按‘-’分成若干子串(子串最多20个),输出原始字符串和每个子串,要求能依次处理用户输入的多个字符串,直到用户输入字符串“0”时程序退出。解析:
2022-12-09 11:22:46 128
原创 题目给出一个字符串s1,我们可以用递归的方法将字符串分成两个非空的子串来将s1表示成一个二叉树
题目给出一个字符串s1,我们可以用递归的方法将字符串分成两个非空的子串来将s1表示成一个二叉树下面是s1=“coder”的一种二叉树的表现形式:将字符串乱序的方法是:选择任意的非叶子节点,交换它的两个孩子节点。例如:如果我们选择节点“co”交换他的两个孩子节点,就会产生一个乱序字符串"ocder".我们称"ocder"是"coder"的一个乱序字符串。类似的:如果我们继续交换“der”的两个孩子节点和“at”的两个孩子节点,会产生乱序字符串"ocred"我们称"ocred"是"coder"的一个乱序字符串。
2022-12-09 11:22:38 465
原创 请简化给出的Unix样式的文件绝对路径,也就是转换成规范路径
请简化给出的Unix样式的文件绝对路径,也就是转换成规范路径在Unix样式的文件系统中, .代表当前目录,.. 表示将目录向上移动一级,更多的介绍可以查看 Absolute path vs relative path in Linux/Unix请注意,返回的规范路径必须以斜杠“/”开头,并且两个目录名之间只能有一个斜杠“/”开头。如果存在的最后一级目录的话不能以“/”结尾。另外,转化出的规范路径必须是能表示给出的绝对路径的最短字符串。例如:文件路径 = "/web/", =>"/web"文件路径 = "/a
2022-12-08 10:22:32 369
原创 给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。
给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。例如:给定s1 ="xxyzz",s2 ="pyyzx",如果s3 ="xxpyyzyzxz", 返回true如果s3 ="xxpyyyxzzz", 返回false解析:public class Solution {public boolean isInterleave(String s1, String s2, String s3) {int len1 = s1.length();int len2 = s2.length();int
2022-12-08 10:22:26 449
原创 贪心算法之哈夫曼编码(C语言实现)
我们知道文件的存储都是以二进制数表示的,如:字符c可以表示为010101…之类的。因为不同的操作系统对于不同的数据类型会分配给相同的数据容器长度,如C中int型数据固定占用4个字节的存储空间。现在问题时因为各个字符出现的概率不同,那么我们就可以给出现概率高的字符分配以”短“的二进制表示数,给出现概率低的字符分配以”长”的二进制表示数。从而达到降低平均每字符占用的空间数,进而实现无损的空间压缩。OK,我们来论证哈夫曼编码问题的贪心选择性质。这里必须介绍一下的是,我们会使用二叉树这种数据结构来解哈夫曼问题。从根
2022-12-07 08:09:52 269
原创 贪心算法训练(六)——喷水装置(区间覆盖问题)
1. 问题描述 长 L 米,宽 W 米的草坪里装有 n 个浇灌喷头,每个喷头都装在草坪的中心线上(离两边各 W/2 米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到的浇灌范围。请问如果要同时浇灌整块草坪,最少需要打开多少个喷头?2. 输入格式 输入包含若干测试数据 每组数据的第一行是整数n、L 和 W 的值,其中 n
2022-12-07 08:09:45 322
原创 贪心算法----区间选点问题(POJ1201)
题目: 正在上传…重新上传取消 题目的大致意思是,给定n个闭区间,并且这个闭区间上的点都是整数,现在要求你使用最少的点来覆盖这些区间并且每个区间的覆盖的点的数量满足输入的要求点覆盖区间的数量。 输入: 第一行输入n,代表n个区间。 接下来的n行每行的第一个数代表区间起点,第二个数代表区间终点,第三个数代表这个区间必须要选取的点的数量。 输出: 输出最少的点的数量,这些最少的点要覆盖全部区间。 这个题是区间选点问题的一种变体,但是我们对于区间选点问题清楚之后那么这种题目也是一样解决
2022-12-06 19:22:39 169
原创 leetcode刷题:贪心算法08(加油站)
134. 加油站力扣题目链接在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3,4,5,1,2]输
2022-12-06 19:22:16 316
原创 NYOJ 91 阶乘之和 (经典贪心算法)
地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=91思路:贪心,最大到最小依次加~~代码如下:
2022-12-05 09:08:27 87
原创 贪心算法 Problem P 1015 求最少花费
简单题意:某酸奶厂每星期可产任意单位的酸奶,且拥有一个足够大的储藏室来存放任意单位的酸奶。每星期产酸奶的成本yi都不同,但每星期贮藏酸奶的成本s(每单位)都相同。现告诉每星期产酸奶的成本,每星期要送往用户的酸奶的总数,以及贮藏酸奶的成本s(每单位),求最少花费。解题思路形成过程:求出每个星期的最低成本,然后乘以每星期要送往用户的酸奶的数量,最后相加即可。感想:注意题目中的提示:Note that the total might be too large for a 32-bit integer. int是不
2022-12-05 09:08:24 154
原创 JSON(及其在ajax前后端交互的过程)小识
并列的数据之间用逗号(,)分隔;映射用冒号(:)表示;并列数据的集合(数组)用方括号([])表示;映射的集合(对象)用大括号({})表示。对上述规则解析,可以发现:数组是用([])创建的,对象是用({})创建的;数组和对象里面的元素都是用(,)隔开:{name:"李华",age:"18",home:"shanghai"}&&[]对象和数组可以相互嵌套,一个数组中的一个元素可以是对象或数组,一个对象中的一个属性的值也可以是一个对象或数组;
2022-12-04 07:30:36 714
原创 算法导论第16章 贪心算法之活动选择
即若si ≥ fj 或 sj ≤ fi,则ai, aj是兼容的 在活动选择中,我们希望选出一个最大兼容活动集,假定活动已按结束时间的单调递增顺序排序:f1 ≤ f2 ≤ f3 ≤....≤ fn-1 ≤ fn。贪心算法通常是自顶向下的设计:做出一个选择,然后求解剩下的那个子问题,而不是自底向上的求出很多子问题,然后再做出选择(这是动态规划常用的方法)输入:start[]:每个活动的开始时间, final[]: 每个活动的结束时间。start[]:每个活动的开始时间, final[]: 每个活动的结束时间。
2022-12-03 18:35:17 561
原创 五大常用算法——贪心算法详解及经典例子
找零钱问题]假如老板要找给我99分钱,他有上面的面值分别为25,10,5,1的硬币数,为了找给我最少的硬币数,那么他是不是该这样找呢,先看看该找多少个25分的,诶99/25=3,好像是3个,要是4个的话,我们还得再给老板一个1分的,我不干,那么老板只能给我3个25分的拉,由于还少给我24,所以还得给我2个10分的和4个1分。其实此题可以用贪心法来求解,只是刚才的标准不对,正确的标准是:先把整数转换成字符串,然后在比较a+b和b+a,如果a+b>=b+a,就把a排在b的前面,反之则把a排在b的后面。
2022-12-03 18:35:14 386
原创 算法java实现--贪心算法--多机调度问题
System.out.println("将机器"+x.id+"从"+x.avail+"到"+(x.avail+d.get(i).time)+"的时间段分配给作业"+d.get(i).id);//初始时,每台机器的空闲时间(完成上一个作业的时间)都为0。public int compareTo(Object o) {//升序排序,LinkedList的first为最小的。//d保存所有的作业。//a的下标从1开始,所以n(作业的数目)=a.length-1。//机器空闲的时间(即机器做完某一项工作的时间)
2022-12-02 09:00:00 839
原创 贪心算法——单源最短路径(Dijkstra算法)
为产生下一条路径,需要选择一个还没最短路径到达的顶点,在这些顶点中,使distanceFromSource[]值最小的顶点就是下一条路径的终点。对于给定的加权有向图G(加权邻接数组表示),它的每一条边(i,j)都有一个固定成本(权值)a[i][j],一条路径的长度就是该路径上所有边的的成本之和。每一条最短路径的目的顶点的选择方法依据贪婪准则:从一条最短路径还没有到达的顶点中,选择一个可以产生最短路径的目的顶点。寻找一条从给定的一个源顶点出发到任意顶点的(目的顶点)的最短路径。如1到5的最短路径为1345。
2022-12-02 08:59:53 1293
原创 贪心算法之贪心的c小加问题
C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。接下来的一行分别输入N个木棒的L,W(0 < L ,W
2022-12-01 07:16:09 87
原创 【贪心算法】背包问题
其实该情况是符合贪心策略的,因为该总情况不管先选哪两个都会把背包塞满,因为该题物品可以分割成任意大小,所以,就算空下一下,也可以将最 后一个物品分割,放进去,它们 的单位重量的价值是一样的,所以,最后背包最后重量相同,重量相同那么价值也相同。cout
2022-11-30 13:50:00 1628
原创 贪心算法原理
在每一个决策点,都是做出当前看来的最优选择,比如在活动选择问题里面,我们总是在一个问题的基础上选择结束时间最早的活动,之后再在剩下活动的基础上选出结束时间最早的活动,以此类推,直到没有活动可以进行选择。背包问题:我们有一堆物品 S={a1,a2,...,an} ,每一个物品 ai 都有一个重量 wi 和一个价值 vi .现在有一个背包,这个背包的容量为 W ,现在要将这些物品在不超出背包容量的情况下选择性的放入背包,使得背包里面物品的价值最大,物品不能只选取其中一部分,必须选择整个,或者不选!
2022-11-30 13:49:30 414
原创 贪心算法详解
刚好满足150重量,由于在算法中我单纯的利用第三种贪心方法求解,当剩余的包裹中最优的再加进来的时候已经超过了,所以这个时候可以选择剩余包裹中次优的(如这里选择A),再不行就次次优的,尽量把包裹装满,这样得到的结果就很接近了(不保证一定为最优),但是我们一般不这样来求解,下一文章会介绍动态规划算法来解决这个问题,动态规划很好的弥补了贪心算法的不足!还需要说明的是,如果包裹是可以拆分的,那这个问题就得到了整体最优解,前面不变,就是当最后一次装进去已经超过容量的时候可以选择只装她的一部分!
2022-11-29 09:44:53 239
原创 贪心算法小结
(这里体现了贪心的思想)。先将需求因子数组和糖果大小数组都排序,得到s=[1,3,6,8,20],需求因子g=[2,5,9,910,15],如果最小的糖果能满足最小的需求因子,就将最小的糖果给最小的需求因子,例中的1无法满足需求因子2,所以试着将次小的糖果给最小的需求因子,仍然无法满足,然后将第三小的糖果给最小的需求因子,此时可以满足,然后将第四小的糖果给第二小的需求因子,依此下去。已知一个字符串表示的非负整数num,num中的k个数字移除,求移除k个数字后,可以获得的最小的可能的新数字。
2022-11-29 09:44:45 200
原创 POJ 1328 简单贪心算法
貌似本题数据类型也挺重要的,没有具体测试了,就直接用double了,一开始存x, y的时候用的是int,结果wa了,可是之后改成了double还wa,才发现其实是贪心的时候排序出错了。/* 关键是 当 island[j].max < min 的时候,是指从右往左一个个island扫描的时候,保证每个都能覆盖到,而且是用最少的雷达数。选用什么排序是关键,一开始错误地选择了横坐标x排序,结果数据基本对的上,* 错误地选择了右区间端点,其实应该选择左端点,从我下面的贪心的具体算法可以看出,其实。
2022-11-28 07:38:48 651
原创 贪心算法入门典型案例
第2行到第N+1行,每行M个用空格隔开的整数 ,表示矩阵。在N行M列的正整数矩阵中,要求从每行中选出1个数,第一行两个正整数N和M,用空格隔开,表示行数和列数。使得选出的总共N个数的和最大。
2022-11-28 07:38:35 161
原创 NYOJ - 91 - 阶乘之和(贪心算法)
为什么要从最大的开始扫描呢,假设不选择能选择的最大的那个数,由num数组中的数据可以看出,前i个数的阶乘和
2022-11-27 07:20:55 440
原创 刷刷笔试题--贪心算法
两个变量,一个变量tempsum来记录一段一段的和,只要tempsum>0,它就可以继续往下加,因为无论array[i]大于0还是小于0,只要加上一个比0大的数,都比自己原来更大,但是如果tempsum
2022-11-27 07:20:52 493
原创 动态规划和贪心算法问题
有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用。每个活动ai都有一个开始时间si和结束时间fi,一旦被选择后,活动ai就占据半开时间区间[si,fi)。如果[si,fi]和[sj,fj]互不重叠,则称ai和aj两个活动是兼容的。该问题就是要找出一个由互相兼容的活动组成的最大子集。例如下图所示的活动集合S,其中各项活动按照结束时间单调递增排序。每一步都做出当时看起来最佳的选择。也就是说,总是做出局部最优的选择,寄希望这样的选择能导致全局最优解。
2022-11-26 09:13:05 165
街道办事处:智慧社区项目需求说明书.pdf
2022-06-29
薪酬与绩效考核表(餐饮店面).pdf
2022-06-29
蔬菜大棚温度控制系统中期报告.pdf
2022-06-29
蓝牙模块与单片机连接.pdf
2022-06-29
蓝牙模块与单片机.pdf
2022-06-29
落实数据安全和个人信息保护工作报告3篇.docx
2022-06-29
落实数据安全和个人信息保护工作报告3篇 (2).docx
2022-06-29
落实数据安全和个人信息保护工作报告.docx
2022-06-29
落实数据安全和个人信息保护工作报告 (2).docx
2022-06-29
英语在线学习平台的设计与实现开题.docx
2022-06-29
花卉种植大棚中温室自动控制系统设计.pdf
2022-06-29
花卉温室大棚中温室自动化控制系统解决方案设计.pdf
2022-06-29
自来水公司收费系统-课程设计报告.pdf
2022-06-29
自动化系统介绍.pdf
2022-06-29
自动化毕业设计论文题目大全综述.pdf
2022-06-29
自动化毕业设计论文题目大全 (3).docx
2022-06-29
自动化本科毕业设计.pdf
2022-06-29
自动化控制施工技术方案与自动化设备安全应急预案与故障处置措施汇编.pdf
2022-06-29
自动化专业毕业设计题目汇总大全 (4).docx
2022-06-29
自动化专业毕业论文参考题目.docx
2022-06-29
自-称重配料系统PC机外置测量控制模块设计 .docx
2022-06-29
股票价格线性回归分析.pdf
2022-06-29
网络教学平台设计如何开发运用能力.pdf
2022-06-29
网络安全系统事件应急预案(20201223074934).pdf
2022-06-29
网络安全应急管理制度和应急处置预案.docx
2022-06-29
冰点真的要关了吗???
2021-02-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人