888. Fair Candy Swap

题目

在这里插入图片描述

我的代码(效率低)

class Solution(object):
    def fairCandySwap(self, A, B):
        """
        :type A: List[int]
        :type B: List[int]
        :rtype: List[int]
        """
        dif =(sum(A)-sum(B))/2
        A=set(A)
        B=set(B)
        for i in A:
            if i-dif in B:
                return[i,i-dif]

优秀代码

使用排序+双指针可以大大提高运行速度。

class Solution(object):
    def fairCandySwap(self, A, B):
        """
        :type A: List[int]
        :type B: List[int]
        :rtype: List[int]
        """
        sumA, sumB = sum(A), sum(B)
        diff = (sumA - sumB) / 2
        A, B = sorted(A), sorted(B)
        i, j = 0, 0
        while True:
            if A[i] - B[j] == diff:
                return [A[i], B[j]]
            elif A[i] - B[j] < diff:
                i += 1
            else:
                j += 1
### Linux Redis配置文件 `redis.conf` 中 Swap 设置说明 在Linux环境中,Redis配置文件`redis.conf`提供了多个选项来控制内存管理行为,其中包括与交换空间(swap)相关的间接影响因素。虽然Redis本身并没有直接针对swap的特定配置项[^1],但是有两个重要的参数可以间接影响到Redis对于物理内存和虚拟内存(即swap)之间的交互: #### maxmemory 和 maxmemory-policy 参数 - **maxmemory**:此参数用于设定Redis实例能够使用的最大内存量。一旦达到这个限制,根据所选策略执行相应的操作。这有助于防止Redis占用过多内存而导致系统频繁使用swap。 ```bash # Example of setting maximum memory limit to 2GB maxmemory 2gb ``` - **maxmemory-policy**:定义了当到达`maxmemory`上限时采取何种淘汰算法处理数据。不同的驱逐政策会影响性能以及哪些键可能会被移除以释放更多可用RAM而不是依赖于操作系统层面的swap机制。 ```bash # Possible values include noeviction, allkeys-lru, volatile-lru etc. maxmemory-policy allkeys-lru ``` 这些设置并不是直接作用于swap上的开关或阈值调整;而是通过合理规划Redis内部的数据存储量级及其缓存清除逻辑,在一定程度上减少因过度消耗实际物理内存而触发的操作系统级别的页面置换活动[^2]。 为了更好地管理和优化Redis服务下的资源分配情况,建议定期监控服务器的整体负载状况并依据业务需求适时修改上述提到的关键字眼所在行的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值