面试题 10.11. 峰与谷

面试题 10.11. 峰与谷

原始题目链接:https://leetcode-cn.com/problems/peaks-and-valleys-lcci/submissions/

在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。

示例:

输入: [5, 3, 1, 2, 3]
输出: [5, 1, 3, 2, 3]

解题思路:

一次遍历,判断当前元素和它的前一个元素比较,依据题目的峰和谷的定义,假设一个峰谷交错的顺序,然后比较即可。具体实现看代码及注释。

代码实现:

class Solution:
    def wiggleSort(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        # 一次遍历:交错的排序,例如:峰-谷-峰-谷-峰...

        for i in range(1, len(nums)):
            # 按照例子,比如峰谷峰的顺序
            # 那索引为第0 2 4...的位置是峰,即位置对2求余是0
            if i % 2 == 0:
                # 当前位置的元素如果和它的前一个元素相比较,大于的话就交换元素
                # 把大的元素换到峰的位置上去
                if nums[i] > nums[i - 1]:
                    nums[i], nums[i - 1] = nums[i - 1], nums[i]
            # 谷的索引,即索引是奇数
            else:
                # 当前位置的元素如果和它的前一个元素相比较,小于的话就交换元素
                # 把小的元素放在谷的位置上去
                if nums[i] < nums[i - 1]:
                    nums[i], nums[i - 1] = nums[i - 1], nums[i]

参考文献:
https://leetcode-cn.com/problems/peaks-and-valleys-lcci/solution/onsuan-fa-qiu-jie-by-whut_hj/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IP地址规划是将一个IP地址空间分配给不同的网络和子网以便有效地管理和使用IP地址。以下是一个可能的IP地址规划: 网络地址:10.11.0.0/16 子网掩码:255.255.0.0 1. 划分子网 根据需求划分子网,以下为划分示例: 子网1:10.11.1.0/24 子网2:10.11.2.0/24 子网3:10.11.3.0/24 子网4:10.11.4.0/24 子网5:10.11.5.0/24 2. 分配IP地址 根据子网的数量和主机数量,为每个子网分配IP地址范围。以下是一个示例: 子网1:10.11.1.1 ~ 10.11.1.254 子网2:10.11.2.1 ~ 10.11.2.254 子网3:10.11.3.1 ~ 10.11.3.254 子网4:10.11.4.1 ~ 10.11.4.254 子网5:10.11.5.1 ~ 10.11.5.254 3. 分配网关地址 为每个子网分配一个网关地址。网关地址通常是子网中的第一个IP地址。以下是一个示例: 子网1:10.11.1.1 子网2:10.11.2.1 子网3:10.11.3.1 子网4:10.11.4.1 子网5:10.11.5.1 4. 分配保留地址 为每个子网分配一些保留地址,以便用于特殊用途。以下是一个示例: 子网1:10.11.1.0(网络地址)、10.11.1.255(广播地址) 子网2:10.11.2.0(网络地址)、10.11.2.255(广播地址) 子网3:10.11.3.0(网络地址)、10.11.3.255(广播地址) 子网4:10.11.4.0(网络地址)、10.11.4.255(广播地址) 子网5:10.11.5.0(网络地址)、10.11.5.255(广播地址) 5. 总结 根据上述规划,我们可以总结出以下内容: 网络地址:10.11.0.0/16 子网掩码:255.255.0.0 子网1:10.11.1.0/24,IP地址范围:10.11.1.1 ~ 10.11.1.254,网关地址:10.11.1.1,保留地址:10.11.1.0、10.11.1.255 子网2:10.11.2.0/24,IP地址范围:10.11.2.1 ~ 10.11.2.254,网关地址:10.11.2.1,保留地址:10.11.2.0、10.11.2.255 子网3:10.11.3.0/24,IP地址范围:10.11.3.1 ~ 10.11.3.254,网关地址:10.11.3.1,保留地址:10.11.3.0、10.11.3.255 子网4:10.11.4.0/24,IP地址范围:10.11.4.1 ~ 10.11.4.254,网关地址:10.11.4.1,保留地址:10.11.4.0、10.11.4.255 子网5:10.11.5.0/24,IP地址范围:10.11.5.1 ~ 10.11.5.254,网关地址:10.11.5.1,保留地址:10.11.5.0、10.11.5.255

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值