首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode笔记:Weekly Contest 265

LeetCode笔记:Weekly Contest 265

作者头像
codename_cys
发布2021-11-02 16:50:44
3110
发布2021-11-02 16:50:44
举报

1. 题目一

给出题目一的试题链接如下:

1. 解题思路

这题直接按照题意进行解答就行了,没啥好多说的……

2. 代码实现

给出python代码实现如下:

class Solution:
    def smallestEqual(self, nums: List[int]) -> int:
        for i, x in enumerate(nums):
            if i % 10 == x:
                return i
        return -1

提交代码评测得到:耗时84ms,占用内存14.3MB。

2. 题目二

给出题目二的试题链接如下:

1. 解题思路

这题我算是取巧了,本身的难点在于链表的单向性,不过我这边先将其转换成了list,从而绕过了单向性问题,由此问题就变得简单了。

后面的内容就不需要多做赘述了。

2. 代码实现

给出python代码实现如下:

class Solution:
    def nodesBetweenCriticalPoints(self, head: Optional[ListNode]) -> List[int]:
        vals = []
        while head:
            vals.append(head.val)
            head = head.next
        
        n = len(vals)
        critics = [i for i in range(1, n-1) if (vals[i-1] < vals[i] and vals[i+1] < vals[i]) or (vals[i-1] > vals[i] and vals[i+1] > vals[i])]
        m = len(critics)
        if m < 2:
            return [-1, -1]
        return [min(critics[i+1] - critics[i] for i in range(m-1)), critics[-1]-critics[0]]

提交代码评测得到:耗时996ms,占用内存55.1MB。

3. 题目三

给出题目三的试题链接如下:

1. 解题思路

由于可行的变换总数也就是在1-1000这个范围内,因此,我们采用一种比较暴力的思路,即我们遍历所有变换可以得到的数据,取出得到他们所需的最小变换次数,这部分可以通过bfs进行实现。

而对于那些无法通过遍历得到的结果,我们直接返回-1即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def minimumOperations(self, nums: List[int], start: int, goal: int) -> int:
        cache = {start: 0}
        q = [start]
        while q:
            x = q.pop(0)
            for k in nums:
                if x + k == goal or x - k == goal or x ^ k == goal:
                    return cache[x] + 1
                if 0 <= x+k <= 1000 and x + k not in cache:
                    cache[x+k] = cache[x] + 1
                    q.append(x+k)
                if 0 <= x-k <= 1000 and x - k not in cache:
                    cache[x-k] = cache[x] + 1
                    q.append(x-k)
                if 0 <= x^k <= 1000 and x ^ k not in cache:
                    cache[x^k] = cache[x] + 1
                    q.append(x^k)
        return -1

提交代码评测得到:耗时1372ms,占用内存14.4MB。

4. 题目四

给出题目四的试题链接如下:

这一题同样没有啥好的思路,就先pass吧,后面有机会的话在看看好了……

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目一
    • 1. 解题思路
      • 2. 代码实现
      • 2. 题目二
        • 1. 解题思路
          • 2. 代码实现
          • 3. 题目三
            • 1. 解题思路
              • 2. 代码实现
              • 4. 题目四
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档