力扣(2024.06.22)

2024-06-23 09:12
文章标签 力扣 2024.06 22

本文主要是介绍力扣(2024.06.22),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 59——螺旋矩阵2

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

标签:数组,矩阵,模拟

代码:

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:matrix = []for i in range(n):matrix.append([0] * n)top = 0bottom = n - 1left = 0right = n - 1num = 1while num <= n*n:for i in range(left, right + 1):matrix[top][i] = numnum = num + 1top = top + 1for i in range(top, bottom + 1):matrix[i][right] = numnum = num + 1right = right - 1for i in range(right, left - 1, -1):matrix[bottom][i] = numnum = num + 1bottom = bottom - 1for i in range(bottom, top - 1, -1):matrix[i][left] = numnum = num + 1left = left + 1return matrix

2. 60——排列序列

给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

给定 n 和 k,返回第 k 个排列。

标签:递归,数学

代码:

class Solution:def getPermutation(self, n: int, k: int) -> str:def fun(nums):n = len(nums) - 1while n > 0:if nums[n - 1] > nums[n]:n = n - 1else:breakidx1 = n - 1num1 = nums[idx1]n = len(nums) - 1while n > idx1:if nums[n] < num1:n = n - 1else:breakidx2 = nnum2 = nums[idx2]nums[idx1], nums[idx2] = num2, num1left = idx1 + 1right = len(nums) - 1while left < right:nums[left], nums[right] = nums[right], nums[left]left = left + 1right = right - 1return numsnums = []res = ""for i in range(n):nums.append(i + 1)i = 1while i < k:nums = fun(nums)i = i + 1for i in nums:res = res + str(i)return res

3. 61——旋转链表

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

标签:链表,双指针

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:pointer = headleng = 0while pointer:leng = leng + 1pointer = pointer.nextif leng == 0 or leng == 1:return headif k == 0 or k % leng == 0:return headk = k % leng  # 向右移动k次,对应倒数第k个结点会是新的头结点pointer = headwhile k:pointer = pointer.nextk = k - 1pointer1 = headwhile pointer.next:pointer1 = pointer1.nextpointer = pointer.nextres = pointer1.nextpointer1.next = Nonepointer.next = headreturn res

这篇关于力扣(2024.06.22)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086733

相关文章

22.手绘Spring DI运行时序图

1.依赖注入发生的时间 当Spring loC容器完成了 Bean定义资源的定位、载入和解析注册以后,loC容器中已经管理类Bean 定义的相关数据,但是此时loC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况 发生: 、用户第一次调用getBean()方法时,loC容器触发依赖注入。 、当用户在配置文件中将<bean>元素配置了 lazy-init二false属性,即让

力扣SQL50 每位经理的下属员工数量 join

Problem: 1731. 每位经理的下属员工数量 👨‍🏫 参考题解 Code select m.Employee_id, m.name,count(*) reports_count,round(avg(e.age),0) average_agefrom Employees ejoin Employees mon e.reports_to = m.Employee_id

秋招突击——6/22——复习{区间DP——加分二叉树,背包问题——买书}——新作{移除元素、实现strStr()}

文章目录 引言复习区间DP——加分二叉树个人实现 背包问题——买书个人实现参考实现 新作移除元素个人实现参考思路 找出字符串中第一个匹配项的下标个人实现参考实现 总结 引言 今天做了一个噩梦,然后流了一身汗,然后没起来,九点多才起床背书。十点钟才开始把昨天那道题题目过一遍,然后十一点才开始复习题目,为了不耽误下午的时间,所以这里的就单纯做已经做过的题目,主打一个有量,不在学

力扣SQL50 游戏玩法分析 IV 子查询

Problem: 550. 游戏玩法分析 IV 👨‍🏫 参考题解 这个SQL查询的目的是计算每个玩家在登录后的第二天参与活动的比例。查询使用了子查询和左连接来实现这一目的。下面是查询的详细解释,包括每个部分的作用和注释: -- 计算每个玩家登录后第二天参与活动的比例select round(avg(a.event_date is not null), 2) as fractio

【经典算法】LeetCode 22括号生成(Java/C/Python3/Go实现含注释说明,中等)

作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) ❤️觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论,💬支持博主,记得点个大大的关注,持续更新🤞 ————————————————- 首先,请注意题目链接有误,您提供的链接是LeetCode 14,但题目

力扣-2663

题目 如果一个字符串满足以下条件,则称其为 美丽字符串 : 它由英语小写字母表的前 k 个字母组成。它不包含任何长度为 2 或更长的回文子字符串。 给你一个长度为 n 的美丽字符串 s 和一个正整数 k 。 请你找出并返回一个长度为 n 的美丽字符串,该字符串还满足:在字典序大于 s 的所有美丽字符串中字典序最小。如果不存在这样的字符串,则返回一个空字符串。 对于长度相同的两个字符串 a

力扣SQL50 超过5名学生的课

Problem: 596. 超过5名学生的课 Code select classfrom coursesgroup by classhaving count(distinct student) >= 5;

力扣刷题 杨辉三角(使用c++ vector解法)

杨辉三角 题目描述示例1示例2提示:代码 题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例1 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例2 输入: numRows = 1

力扣SQL50 求关注者的数量 分组计数

Problem: 1729. 求关注者的数量 Code select user_id, count(1) followers_countfrom Followers group by user_idorder by user_id;