leetcode358周赛

2815. 数组中的最大数对和

核心思想:维护每一个最大的数字的最大值,然后一边更新最大值,一边统计结果。其中求nums中的每一个数的数位最大值可以用map的方法,我自己做的时候是用的%10,感觉map这种方法很巧妙。

leetcode358周赛_第1张图片

2816. 翻倍以链表形式表示的数字 

核心思想:自己的话用的是笨办法,把所有值存在列表,然后翻倍后在创建一个新的链表,这里的方法用的是,先求个位,然后加进位的办法,如果后面的数大于等于5才会产生进位。

leetcode358周赛_第2张图片

 2817. 限制条件下元素之间的最小绝对差

核心思想:数据结构SortedList+双指针。当有两个指针left和right,right指向的是两个数右边的那个数,当right增加的时候我们发现,前一个right的left指针指向的数放入数据结构中的那个,下标和当前right的距离也肯定大于x。所以我们只需要每次找到right在放入left中的位置,即可统计出结果,所以我们需要一个保存有序数据的结构,那么就是SortedList。为了保证能够找到下标,提前放入了inf和-inf作为哨兵。

leetcode358周赛_第3张图片

 

 2818. 操作使得分最大

核心思想:num的质数个数求解+单调栈求左右最大值+num可操作子数组个数。

leetcode358周赛_第4张图片

 

 

你可能感兴趣的:(算法,python)