<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[left_freckle的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/left_freckle</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; left_freckle]]></copyright><item><title><![CDATA[华为OD机考E卷200分题 - 跳格子3]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143926098</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143926098</guid><author>left_freckle</author><pubDate>Wed, 20 Nov 2024 21:44:15 +0800</pubDate><description><![CDATA[为了优化这一过程，我们使用一个双端队列来维护 ( dp ) 值的索引，并且保持队列中的 ( dp ) 值是单调递减的，这样队列的首元素始终是最大值。通过这种方法，每个元素最多只被队列添加和删除各一次，因此更新 ( dp ) 数组的过程的时间复杂度降低到 ( O(n) )。小明和朋友们一起玩跳格子游戏，每个格子上有特定的分数 score = [1, -1, -6, 7, -17, 7]，从起点score[0]开始，每次最大的步长为k，请你返回小明跳到终点 score[n-1] 时，能得到的最大得分。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 跳房子I]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143926085</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143926085</guid><author>left_freckle</author><pubDate>Wed, 20 Nov 2024 21:43:38 +0800</pubDate><description><![CDATA[此样例有多种组合满足两回合跳到最后，譬如：[-1,9]，[2,6]，其中[-1,9]的索引和为0+3=3，[2,6]的索和为1+4=5，所以索引和最小的步数组合[-1,9]假设房子的总格数是count，小红每回合可能连续跳的步教都放在数组steps中，请问数组中是否有一种步数的组合，可以让小红两个回合跳到量后一格?格，并且这个组合在原数组中的索引和是最小的。输出是该步数组合中的两个步数，顺序保持与。第一行输入为每回合可能连续跳的步数，它是int整数数组类型。如果有，请输出索引和最小的步数组合。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 战场索敌]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874642</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874642</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:28:21 +0800</pubDate><description><![CDATA[如果相邻位置在地图范围内、未被访问过且不是墙壁，则将其标记为已访问，并根据其值判断是否为敌人，如果是，则将计数器count加1，并将该位置加入到栈中。接下来，我们遍历地图中的每个位置，如果该位置已经被访问过或者是墙壁，则跳过。否则，调用dfs函数计算以该位置为起点的区域中敌人的数量，如果该数量小于目标敌人数量k，则将区域数量加1。整体思路是，遍历地图中的每个位置，如果该位置未被访问过且不是墙壁，则调用dfs函数计算以该位置为起点的区域中敌人的数量，如果该数量小于目标敌人数量k，则将区域数量加1。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 找单词]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874618</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874618</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:27:50 +0800</pubDate><description><![CDATA[出一个位置下标字符串，拼接格式为：第1个字符行下标+”,”+第1个字符列下标+”,”+第2个字符行下标+”,”+第2个字符列下标…+”,”+第N个字符行下标+”,”+第N个字符列下标。给一个字符串和一个二维字符数组，如果该字符串存在于该数组中，则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串，如果找不到返回字符串“N”。ACCESS分别对应二维数组的[0,0] [0,1] [0,2] [1,2] [2,2] [2,3]下标位置。第N+2行为待查找的字符串，由大写字符组成。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 智能驾驶]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874596</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874596</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:27:19 +0800</pubDate><description><![CDATA[有一辆汽车需要从 m * n 的地图左上角（起点）开往地图的右下角（终点），去往每一个地区都需要消耗一定的油量，加油站可进行加油。后面一个 M * N 的矩阵，其中的值是 0 或 -1 或正整数，加油站的总数不超过 200 个。行走的路线为：下→下→下→右→右→上→上→上→右→右→下→下→下。请你计算汽车确保从从起点到达终点时所需的最少初始油量。第一行为两个数字，M，N，表示地图的大小为 M * N。如果汽车可以到达终点，则返回最少的初始油量。行走的路线为：右→右→下→下→下→右。行走的路线为：右→下。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 中文分词模拟器]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874576</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874576</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:26:48 +0800</pubDate><description><![CDATA[在这个例子中，输入的句子是 “ilovechina,thewordisbeautiful”，字典中的单词是 “i”, “love”, “china”, “ch”, “na”, “ve”, “lo”, “this”, “is”, “the”, “word”, “beauti”, “tiful”, “ful”。词库：根据外部知识库统计出来的常用词汇例：dictionary = [“i”, “love”, “china”, “lovechina”, “ilove”]首先，将字典中的每个单词插入到 Trie 中。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 周末爬山]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874549</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874549</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:26:17 +0800</pubDate><description><![CDATA[实现一个深度优先搜索函数 dfs，它接收以下参数：当前位置的坐标 (x, y)，当前步数 step，一个哈希表 min_step_to_height 用于存储到达不同高度的最短步数，山地图矩阵 matrix，矩阵的行数 m 和列数 n，允许的最大高度差 k，一个记忆化数组 memo 用于记录已经访问过的位置和步数，以及一个布尔数组 visited 用于记录已经访问过的位置。遍历四个方向（上下左右），计算新的位置，并检查新位置是否在矩阵范围内。根据山地图可知，能爬到的最高峰在(0,2)位置，高度为2，]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 转骰子]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874515</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874515</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:25:45 +0800</pubDate><description><![CDATA[每个面一个数字，初始为左1，右2，前3(观察者方向)，后4，上5，下6，用123456表示这个状态，放置在平面上，骰子向前翻转，状态变为125643，再顺时针旋转，状态变为651243，最后向右翻转，状态变为342156。现从123456这个初始状态开始，根据输入的动作序列，计算得到最终的状态。输入一行，为只包含LRFBAC的字母序列，最大长度为50，字母可重复。骰子先向左翻转，再向右翻转回来，故还是原来的状态123456。骰子的初始状态和初始状态转动后的状态如图所示。本题没啥难度，主要就是模拟！]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 字符串化繁为简]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874487</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874487</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:25:13 +0800</pubDate><description><![CDATA[输入字符串为"never(dont)give(run)up(f)()"，初始等效字符集合为(‘d’, ‘o’, ‘n’, ‘t’)、(‘r’, ‘u’, ‘n’)，由于等效关系可以传递，因此最终等效字符集合为(‘d’, ‘o’, ‘n’, ‘t’, ‘r’, ‘u’)，将输入字符串里的剩余部分按字典序最小的等效字符替换后得到"devedgivedp’题目的核心要求是对字符串中的字符进行等效关系的解析和替换，其中小括号内的字符表明了字符之间的等效关系，等效关系可以跨多个小括号传递，且大小写字母也视为等效。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 字符串拼接]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874468</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874468</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:24:41 +0800</pubDate><description><![CDATA[在递归调用返回后，我们需要取消对当前字符的使用标记，以便在后续的遍历中可以再次使用这个字符。这就是回溯的思想，即撤销之前的选择，尝试其他的选择。给定 M（0 < M ≤ 30）个字符（a-z），从中取出任意字符（每个字符只能用一次）拼接成长度为 N（0 < N ≤ 5）的字符串，要求相同的字符不能相邻，计算出给定的字符列表能拼接出多少种满足条件的字符串，的最后一个字符相同，我们就跳过这个字符，继续检查下一个字符。的末尾，然后标记这个字符为已使用，接着递归调用。的最后一个字符不同，我们就将它添加到。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 字母组合过滤组合字符串]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874439</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874439</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:23:58 +0800</pubDate><description><![CDATA[屏蔽字符串：屏蔽字符串中的所有字母不能同时在输出的字符串出现，如屏蔽字符串是abc，则要求字符串中不能同时出现a,b,c，但是允许同时出现a,b或a,c或b,c等；数字字符串78，可以得到如下字符串uw，ux，vw，vx；由于ux是屏蔽字符串，因此排除ux，最终的输出是uw，vw，vx;第一行输入为一串数字字符串，数字字符串中的数字不允许重复，数字字符串的长度大于0，小于等于5；第二行输入是屏蔽字符串，屏蔽字符串的长度一定小于数字字符串的长度，屏蔽字符串中字符不会重复；输出可能的字符串组合。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 最大社交距离]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874418</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874418</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:23:25 +0800</pubDate><description><![CDATA[座位一排共 N 个座位，编号分别为[0,N-1],动态维护一个已占用座位的列表，并在每次有员工进入时计算最佳座位，以及在有员工离开时更新座位状态。seat -> 0,空在任何位置都行，但是要给他安排索引最小的位置，也就是座位 0。：在处理完所有操作后，输出最后一个进入的员工的座位编号。如果会议室已满，则输出。seat -> 4,要和旁边的人距离最远，应该坐到中间，也就是座位 4。例如 -4 表示坐在位置 4 的员工离开（保证有员工坐在该座位上）最后进来员工，他会坐在第几个位置，如果位置已满，则输出-1。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 最大社交距离]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874399</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874399</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:22:54 +0800</pubDate><description><![CDATA[座位一排共 N 个座位，编号分别为[0,N-1],动态维护一个已占用座位的列表，并在每次有员工进入时计算最佳座位，以及在有员工离开时更新座位状态。seat -> 0,空在任何位置都行，但是要给他安排索引最小的位置，也就是座位 0。：在处理完所有操作后，输出最后一个进入的员工的座位编号。如果会议室已满，则输出。seat -> 4,要和旁边的人距离最远，应该坐到中间，也就是座位 4。例如 -4 表示坐在位置 4 的员工离开（保证有员工坐在该座位上）最后进来员工，他会坐在第几个位置，如果位置已满，则输出-1。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 最大相连男生数学生方阵]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874380</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874380</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:22:24 +0800</pubDate><description><![CDATA[题目要求在一个由学生组成的矩形方阵中，找到最大的位置相连的男生数量。这里“相连”是指男生的所在位置可以通过水平、垂直、对角线或反对角线方向连续连接。这个相连位置在一个直线上，方向可以是水平的，垂直的，成对角线的或者呈反对角线的。输入的第一行为矩阵的行数和列数，接下来的n行为矩阵元素，元素间用”,”分隔。输出一个整数，表示矩阵中最长的位置相连的男生个数。请在矩形方阵中找到最大的位置相连的男生数量。学校组织活动，将学生排成一个矩形方阵。，最后在整个矩阵中找到的最大连续。），开始四个方向的搜索。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 最佳对手实力差距最小总和]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874362</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874362</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:21:52 +0800</pubDate><description><![CDATA[游戏里面，队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大，对于双方游戏体验都不会太好。给定n个队伍的实力值，对其进行两两实力匹配，两支队伍实例差距在允许的最大差距d内，则可以匹配。，并且在尽可能多的匹配情况下，使所有匹配的实力差距的总和最小。匹配后，各组对战的实力差值的总和。要求在匹配队伍最多的情况下匹配出的各组实力差距的总和最小。，要求将队伍进行两两配对，满足每对队伍的实力差距不超过。个队伍的实力值和一个允许的最大实力差距。47与59配对，实力差距12，81与81配对，实力差距0。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 最长方连续方波信号]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874332</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874332</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:21:20 +0800</pubDate><description><![CDATA[输入一串方波信号，求取最长的完全连续交替方波信号，并将其输出，如果有相同长度的交替方波信号，输出任一即可。方波信号高位用1标识，低位用0标识 。说明：输入信号字符串（长度 >= 3 且 <= 1024）：例如：0010101010110000101000010注：输入总是合法的，不用考虑异常情况输出最长的完全连续交替方波信号串例如：01010若不存在完全连续交替方波信号串，输出 -1。输入
输出
说明题目要求处理一串由和组成的方波信号字符串，从中找出最长的“完全连续交替方波”信号，并输出该信号。如果有多个相]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷200分题 - 最长子字符串的长度]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143874305</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143874305</guid><author>left_freckle</author><pubDate>Tue, 19 Nov 2024 10:20:41 +0800</pubDate><description><![CDATA[最长子字符串是 “oxdolxl”，由于是首尾连接在一起的，所以最后一个 ‘x’ 和开头的 'l’是连接在一起的，此字符串包含 2 个 ‘l’ ，2个 ‘o’ ，2个 ‘x’。给你一个字符串 s，字符串s首尾相连成一个环形 ，请你在环中找出’l’、‘o’、‘x’ 字符都恰好出现了偶数次最长。说明：最长子字符串之一是 “alolob”，它包含 ‘l’，'o’各 2 个，以及 0 个 ‘x’。字符串 “bcbcbc” 本身就是最长的，因为 ‘l’、‘o’、‘x’ 都出现了 0 次。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷100分题 - 光伏场地建设规划]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143842732</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143842732</guid><author>left_freckle</author><pubDate>Mon, 18 Nov 2024 07:51:29 +0800</pubDate><description><![CDATA[其中9，起始就是下图中绿色部分，是一个c*c的区域，9是这个区域的发电量总和。其他的16，22，21也同理。其中不能建设的区域发电量为0kw，可以发电的区域根据光照，地形等给出了每平方公里年发电量x千瓦。第一行输入为调研的地区长，宽，以及准备建设的电站【长宽相等，为正方形】的边长最低要求的发电量。调研的区域大小为长2宽5的矩形，我们要建设的电站的边长为2，建设电站最低发电量为6.因此，9，16，22，21每一个都是符合要求发电站发电量>6的区域，因此结果输出4个。样的话，最终得到【9，16，22，21】]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷100分题 - 关联子串]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143842731</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143842731</guid><author>left_freckle</author><pubDate>Mon, 18 Nov 2024 07:50:58 +0800</pubDate><description><![CDATA[我们需要找到str1的某个排列是否是str2的子串。由于str1的所有排列组合数量是n!，当字符串长度比较大时，生成和匹配所有的排列组合非常耗时。因此，直接生成所有排列并依次匹配不是一个高效的方法。]]></description><category></category></item><item><title><![CDATA[华为OD机考E卷100分题 - 构成正方形的数量]]></title><link>https://blog.youkuaiyun.com/left_freckle/article/details/143842728</link><guid>https://blog.youkuaiyun.com/left_freckle/article/details/143842728</guid><author>left_freckle</author><pubDate>Mon, 18 Nov 2024 07:50:27 +0800</pubDate><description><![CDATA[内积（Dot Product）是向量代数中的一个重要概念。给定两个向量 a = ( a 1 , a 2 ) \mathbf{a} = (a_1, a_2) a=(a1​,a2​) 和 b = ( b 1 , b 2 ) \mathbf{b} = (b_1, b_2) b=(b1​,b2​)，它们的内积定义为：如果两个向量的内积为零，即 a ⋅ b = 0 \mathbf{a} \cdot \mathbf{b} = 0 a⋅b=0，那么这两个向量互相垂直（即成90度角）。]]></description><category></category></item></channel></rss>