算法
算法讲解包括洛谷蓝桥杯(主要为Java和Go语言)
不7夜宵
玛卡巴卡
展开
-
P1909 [NOIP2016 普及组] 买铅笔Java
根据题目描述,可以把三种铅笔的价格存入一个长度为3的一维数组中,通过循环将不同种类的铅笔的个数及价格输入,再把P老师买这种铅笔所需钱数存入数组中,然后使用数组排序(默认为升序)进行排序,输出下标为-1的值即为所需最少花费钱数。原创 2023-12-10 16:38:05 · 126 阅读 · 1 评论 -
洛谷P8772求和(Java)
记Sn为全部前n项和,这道题通过对式子变换可以得到S=(Sn-an)*an+(Sn-1-an-1)*an-1+.....+(S2-a2)*a2。举例:1 3 6 9。原创 2024-03-20 16:52:11 · 324 阅读 · 1 评论 -
移动零元素
定义一个j=0,然后一个循环遍历判断当前元素是否为0,然后使每个非零元进入nums[j++]的位置,此时经过循环新的nums数组权威非零元素,按照原来nums数组的长度在现在nums数组末位添0。题目描述:给定一个数组,把里面的零元素移动到数组的末位,同时保证非零元素的相对位置。一层循环查找每个元素是否为0,二层循环把0元素往后移动到数组末位。二:根据零元素个数在末位添零。原创 2024-01-23 18:01:24 · 400 阅读 · 0 评论 -
双指针字符串1768
1.获取两个字符串的长度,然后采用一个循环,条件是循环变量小于word1和word2的长度,两个if语句根据先后顺序执行当i>word1的长度时不执行第一个if语句!开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。题目描述:给你两个字符串。原创 2024-01-21 15:03:30 · 386 阅读 · 2 评论 -
198.打家劫舍Java版
通过循环使新数组的第三个元素即以后的元素都等于原有数组隔一个数相加和中间数的最大值。设新数组名字为ex,即ex[i]=Math.max(ex[i-2]+nums[i-1],ex[i-1]).其中由于新数组要比原有数组多一个长度,所以ex中下标为i的数值对应应该加nums数组中下标为i-1的数值。刚开始一点思路都没有就去找了视频和题解,然后大致看了一眼开始自己写,首先要先把数组为空,数值是0的情况和长度为1的情况挑出来,然后在写的过程中我发现长度为2的数组情况也很特殊,因此先把这些特殊情况挑出来。原创 2024-02-18 21:39:55 · 364 阅读 · 1 评论