最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素。
示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

解法:
最简单的就可以想到使用列表。
但是要实现检索最小值的功能,可以想到维护一个最小值,就像前缀树中维护一个word的布尔类型一样。
注意随时更新min,可以加快运行速度

class MinStack(object):def __init__(self):"""initialize your data structure here."""self.stack = []self.min = Nonedef push(self, x):""":type x: int:rtype: None"""self.stack.append(x)if self.min == None or self.min > x:self.min = xdef pop(self):""":rtype: None"""tmp = self.stack.pop()if len(self.stack) == 0:self.min = Noneif self.min == tmp:self.min = self.stack[0]for x in self.stack:if self.min > x:self.min = xdef top(self):""":rtype: int"""return self.stack[-1]def getMin(self):""":rtype: int"""return self.min# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()

数据流的中位数

中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。

例如,

[2,3,4] 的中位数是 3

[2,3] 的中位数是 (2 + 3) / 2 = 2.5

设计一个支持以下两种操作的数据结构:

void addNum(int num) - 从数据流中添加一个整数到数据结构中。
double findMedian() - 返回目前所有元素的中位数。
示例:

addNum(1)
addNum(2)
findMedian() -> 1.5
addNum(3)
findMedian() -> 2
进阶:

如果数据流中所有整数都在 0 到 100 范围内,你将如何优化你的算法?
如果数据流中 99% 的整数都在 0 到 100 范围内,你将如何优化你的算法?

解法
对于有序数组求中位数很简单了,但是题目给的是数据流,也就是我们必须做到可以时刻求出中位数的程度。

第一种方法:我们可以给每个从数据流出来的数进行排序,然后数组长度除以2就能得到中位数,但显然这样的做法是非常不好的,如果新进来的数是比当前排好序的所有元素都小的数,那么意味着数组中的所有数都必须向后移动一位,也就是O(n)的复杂度,假设每进来一个数都来一遍O(n),性能还是很低的。

第二种方法:采用优先队列,也就是大根堆跟小根堆,我们将较小的n/2个数放到大根堆中,将较大的n/2个数放到小根堆中,显然,如果n是偶数,那么大根堆的堆顶跟小根堆的堆顶就是我们要找的两个中位数,将其相加除以2作为结果返回即可。如果n是奇数,那么就看大根堆跟小根堆谁的节点个数比另一个堆多一个,节点数量多的那个堆的堆顶就是我们要找的中位数,此时我们直接返回结果即可。

需要注意的是:

1.对于取堆顶元素的操作的时间复杂度是常数级别的。

2.插入新节点时我们需要判断节点的值是否小于大根堆堆顶的值或者大于小根堆堆顶的值,

如果小于大根堆堆顶的值,那么节点应该插入大根堆,反过来应该插入小根堆。

3.每次插入新节点我们还需要判断两个堆之间的元素个数是否平衡。插入新节点后,我们判断两个堆的元素个数,如果相差为2那么我们就要对堆进行调整。比如新插入一个节点到小根堆中,而此时大根堆的个数+1小于小根堆的节点个数,这个时候只需要将小根堆的堆顶元素弹出,然后将这个弹出的元素插入大根堆即可。反过来也是一样的操作。为什么可以这样做呢?这是因为我们说了小根堆保存的是较大的n/2个数,而小根堆的堆顶是小根堆中最小的元素,同时也是大根堆中最大的元素,因此我们将这个堆顶元素弹出并插入大根堆的操作并不会破坏“小根堆保存较大的n/2个数,大根堆保存较小的n/2”这样的前提。

class MedianFinder:def __init__(self):"""initialize your data structure here."""self.max_heap = []self.min_heap = []def addNum(self, num):if not self.max_heap:heapq.heappush(self.max_heap, -num)  # python的heaqp模块是小根堆,因此要保存大根堆的话需要加上一个负号returnif num > -self.max_heap[0]:heapq.heappush(self.min_heap, num)if len(self.max_heap) + 1 < len(self.min_heap):heapq.heappush(self.max_heap, -heapq.heappop(self.min_heap))  # 插入大根堆需要给值加负号else:heapq.heappush(self.max_heap, -num)if len(self.max_heap) > len(self.min_heap) + 1:heapq.heappush(self.min_heap, -heapq.heappop(self.max_heap))  # 弹出大根堆堆顶的时候需要加负号变为正数def findMedian(self):if len(self.max_heap) > len(self.min_heap):   # 大根堆元素多一个,中位数是大根堆堆顶return -self.max_heap[0]if len(self.max_heap) < len(self.min_heap):   # 小根堆元素多一个,中位数是小根堆堆顶return self.min_heap[0]else:return (-self.max_heap[0] + self.min_heap[0])/2# Your MedianFinder object will be instantiated and called as such:
# obj = MedianFinder()
# obj.addNum(num)
# param_2 = obj.findMedian()

数组中的第K个最大元素

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

示例 1:

输入: [3,2,1,5,6,4] 和 k = 2
输出: 5
示例 2:

输入: [3,2,3,1,2,4,5,5,6] 和 k = 4
输出: 4
说明:

你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。

解法

  • 最简单的就是给数组排序,求k这个Index位置上的数
  • 使用快速排序思想,就是找第k个pointer。注意是从左到右从大到小排序,使用partition比较简单些。
  • 递归,就是麻烦一点,和解法二差不多
class Solution(object):def findKthLargest(self, nums, k):""":type nums: List[int]:type k: int:rtype: int"""return self.quick(nums, 0, len(nums)-1, k-1)def quick(self, nums, l, r, k):if l == r:return nums[l]p = self.partition(nums, l, r)if p == k:return nums[p]elif k < p:return self.quick(nums, l, p-1, k)else:return self.quick(nums, p+1, r, k)def partition(self, nums, l, r):j = lfor i in range(l+1, r+1):if nums[i] > nums[l]:j+=1nums[i], nums[j] = nums[j], nums[i]nums[j], nums[l] = nums[l], nums[j]return j

解法3:

class Solution:def _partition(self, nums, l, r):j = lfor i in range(l + 1, r + 1):if nums[i] > nums[l]:j += 1nums[i], nums[j] = nums[j], nums[i]nums[l], nums[j] = nums[j], nums[l]return jdef findKthLargest(self, nums, k):""":type nums: List[int]:type k: int:rtype: int"""l, r, k = 0, len(nums) - 1, k - 1while 1:p = self._partition(nums, l, r)if k == p:return nums[p]elif k < p:r = p - 1else:l = p + 1

有序矩阵中第K小的元素

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。
请注意,它是排序后的第k小元素,而不是第k个元素。

示例:

matrix = [
[ 1, 5, 9],
[10, 11, 13],
[12, 13, 15]
],
k = 8,

返回 13。
说明:
你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。

解法:

  • 利用最大堆,建一个大小为k的最大堆,遍历矩阵,将矩阵元素一一插入到堆中,堆的大小超过k后要弹出堆顶元素。这样做时间复杂度为O(N2logk)。但是这种解法没有利用到矩阵行和列分别有序的信息。
  • 可以用二分查找法来做,我们由于是有序矩阵,那么左上角的数字一定是最小的,而右下角的数字一定是最大的,所以这个是我们搜索的范围。然后我们算出中间数字mid,由于矩阵中不同行之间的元素并不是严格有序的,所以我们要在每一行都查找一下mid。
    1.首先设置mid的初值为矩阵matrix,最后一个数和第一个数的平均值。
    2.统计矩阵中所有行小于mid值的个数之和。若cnt小于8,L = mid + 1,并更新mid;若该值大于8,R = mid。
    3.重复上述搜索,直至L和R不满足L < R,此时的L或者R值即为所求。
class Solution(object):def kthSmallest(self, matrix, k):""":type matrix: List[List[int]]:type k: int:rtype: int"""a, b = len(matrix), len(matrix[0])left = matrix[0][0]right = matrix[a-1][b-1]while left < right:mid = left + (right - left) / 2cnt = 0for i in range(a):j = b-1while j >=0 and matrix[i][j] > mid:j -= 1cnt += j+1if cnt < k:left = mid + 1else:right = midreturn left

滑动窗口最大值

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回滑动窗口中的最大值。
示例:

输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7] 
解释: 滑动窗口的位置                最大值
---------------               -----
[1  3  -1] -3  5  3  6  7       31 [3  -1  -3] 5  3  6  7       31  3 [-1  -3  5] 3  6  7       51  3  -1 [-3  5  3] 6  7       51  3  -1  -3 [5  3  6] 7       61  3  -1  -3  5 [3  6  7]      7

解法
Sliding Window法。
维护window这个数组,使得在任意时刻,window【0】都是当前Window内最大值的下标。
并且window从左到右恰恰是第一大、第二大、。。。。。第K大的元素(也就是C++中的双端队列,在队列中存储元素在数组中的位置, 并且维持队列的严格递减)
维护过程为:

  1. 如果window不为空,并且 window[0] 比 i - k 小 (这就说明window[0]在当前Window的左界的左侧,应该被踢出去), 把window【0】弄出去
  2. 把从队尾倒着数的每个比item 大的元素都弄出去
  3. 把item 弄进Window
  4. 如果index > = k - 1, 就说明Window size 已经有k了,可以输出答案了。因为如果 index < k - 1, 说明Window size还没到k。
class Solution(object):def maxSlidingWindow(self, nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""if not nums:return []res, window = [], []for index, item in enumerate(nums):if window and window[0] <= index - k:window.pop(0)while window and nums[window[-1]] <= item:window.pop()window.append(index)if index >= k-1:res.append(nums[window[0]])return res

基本计算器 II

实现一个基本的计算器来计算一个简单的字符串表达式的值。

字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。

示例 1:

输入: “3+2*2”
输出: 7
示例 2:

输入: " 3/2 "
输出: 1
示例 3:

输入: " 3+5 / 2 "
输出: 5
说明:

你可以假设所给定的表达式都是有效的。
请不要使用内置的库函数 eval。

解法
计算器的实现一般是使用压栈的方式,但此处有几个注意事项:

  1. 因为包含加减乘除,一般是对乘法和除法特殊处理(括号也是这样先处理)压入栈,然后再全体加起来。
  2. 一般都是使用整数栈,不要再把符号压入栈了,所以对于减法只需把数字加个负号。
  3. 注意题目中并没有说是十以内加减法,所以有可能出现多位数,也就是要处理数字,用num作为当前的数字,直到遇见符号的时候这个数字就结束了。
  4. 由于需要用下一个符号来判断前一个数字是否结束,所以用sign来代表前一个符号。
  5. 两个整数直接相除得到的结果是自动向上取整的,比如3/2=2,所以可以先转换成浮点数再取整。
class Solution(object):def calculate(self, s):""":type s: str:rtype: int"""s = s.replace(' ', '')res = []num = 0sign = '+'for idx, x in enumerate(s):if x.isdigit():num = num * 10 + int(x)if x.isdigit() == False or idx == len(s) - 1:if sign == '+':res.append(num)elif sign == '-':res.append(-num)elif sign == '*':res.append(res.pop() * num)elif sign == '/':res.append(int(float(res.pop())/float(num)))num = 0sign = xout = 0for idx, x in enumerate(res):out += xreturn out

逆波兰表达式求值

根据逆波兰表示法,求表达式的值。

有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

说明:

整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
示例 1:

输入: [“2”, “1”, “+”, “3”, “*”]
输出: 9
解释: ((2 + 1) * 3) = 9
示例 2:

输入: [“4”, “13”, “5”, “/”, “+”]
输出: 6
解释: (4 + (13 / 5)) = 6

示例 3:

输入: [“10”, “6”, “9”, “3”, “+”, “-11”, “", “/”, "”, “17”, “+”, “5”, “+”]
输出: 22
解释:
((10 * (6 / ((9 + 3) * -11))) + 17) + 5
= ((10 * (6 / (12 * -11))) + 17) + 5
= ((10 * (6 / -132)) + 17) + 5
= ((10 * 0) + 17) + 5
= (0 + 17) + 5
= 17 + 5
= 22

解法
和计算器的方法相同,都是压栈,这个更简单,因为是后缀表达式的形式,而且不需要判断当前数字是否已经结束,因为用列表给出了。
但是要注意不能用.isdigit去判断是否是数字,因为这只能判断0-9的数字,当遇到”-11“这种就错了。

class Solution(object):def evalRPN(self, tokens):""":type tokens: List[str]:rtype: int"""res = []for idx, x in enumerate(tokens):if x != '+' and x != '-' and x != "*" and x != "/":res.append(int(x))else:b=res.pop()a=res.pop()tmp = 0if x == '+':tmp=a+belif x == '-':tmp = a - belif x == '*':tmp = a * belif x == '/':tmp = int(float(a) / float(b))res.append(tmp)return res[-1]

打开转盘锁

你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。

锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。

列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。

字符串 target 代表可以解锁的数字,你需要给出最小的旋转次数,如果无论如何不能解锁,返回 -1。

示例 1:

输入:deadends = [“0201”,“0101”,“0102”,“1212”,“2002”], target = “0202”
输出:6
解释:
可能的移动序列为 “0000” -> “1000” -> “1100” -> “1200” -> “1201” -> “1202” -> “0202”。
注意 “0000” -> “0001” -> “0002” -> “0102” -> “0202” 这样的序列是不能解锁的,
因为当拨动到 “0102” 时这个锁就会被锁定。
示例 2:

输入: deadends = [“8888”], target = “0009”
输出:1
解释:
把最后一位反向旋转一次即可 “0000” -> “0009”。
示例 3:

输入: deadends = [“8887”,“8889”,“8878”,“8898”,“8788”,“8988”,“7888”,“9888”], target = “8888”
输出:-1
解释:
无法旋转到目标数字且不被锁定。
示例 4:

输入: deadends = [“0000”], target = “8888”
输出:-1

提示:

死亡列表 deadends 的长度范围为 [1, 500]。
目标数字 target 不会在 deadends 之中。
每个 deadends 和 target 中的字符串的数字会在 10,000 个可能的情况 ‘0000’ 到 ‘9999’ 中产生。

解法
首先是求“最小”次数,所以用BFS。本来用了vis另一个set保存遍历过的元素,但是发现其实可以和deadends合并,省时间和空间。
注意每次加入“树的子节点”的时候,都是加入8个(4位数,8种改变的可能)

class Solution(object):def openLock(self, deadends, target):""":type deadends: List[str]:type target: str:rtype: int"""ori = "0000"if ori in deadends:return -1q = [(ori, 0)]deadends = set(deadends)while q:top, step = q.pop(0)if top == target:return stepfor i in range(4):x = [(int(top[i]) + 1) % 10, (int(top[i]) - 1) % 10]for j in range(2):k = str(x[j])cur = top[:i] + k + top[i+1:]if cur not in deadends:deadends.add(cur)q.append((cur, step+1))return -1

有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例 1:

输入: “()”
输出: true
示例 2:

输入: “()[]{}”
输出: true
示例 3:

输入: “(]”
输出: false
示例 4:

输入: “([)]”
输出: false
示例 5:

输入: “{[]}”
输出: true

解法
首先读懂题目,判断括号是否有效;然后找到有效的条件:

  • 左右括号匹配:存在右括号,就找左括号是否存在
  • 顺序不能错:存在右括号时,pop出来的第一个括号就应该是对应的左括号。
  • 空字符串
class Solution(object):def isValid(self, s):""":type s: str:rtype: bool"""if not s:return Truestack = []for x in s:#print(x)if x == "(" or x == "{" or x == "[":stack.append(x)if x == ')':if not stack or stack.pop() != '(':return Falseif x == '}':if not stack or stack.pop() != '{':return Falseif x == ']':if not stack or stack.pop() != '[':return Falseif not stack:return Truereturn False

每日温度

根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。

例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。

提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。

解法
题意:遍历列表,得到最近的比当前值大的索引差值。分析可能的情况:

  • i+1位置就比i位置值大(比如[73, 74]),res[i]=1
  • i+1位置小于i位置,但是i+n位置大于i位置(比如[71, 69, 72]),res[i]=n
  • 后面没有比i位置更大的数,res[i]=0

那么就可以想到用栈保存前面的数的位置,遍历当前数x的时候,就pop出最近的数比较一下是否比x小,如果是的话,取出来给res赋值(索引差);如果不是的话,stack前面不可能有比x更小的

class Solution(object):def dailyTemperatures(self, T):""":type T: List[int]:rtype: List[int]"""res = [0] * len(T)stack = [0]for i in range(1, len(T)):while len(stack) > 0 and T[stack[-1]] < T[i]:idx = stack.pop()res[idx] = i - idxstack.append(i)return res

克隆图

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。

图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。

class Node {
public int val;
public List neighbors;
}

测试用例格式:

简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1,第二个节点值为 2,以此类推。该图在测试用例中使用邻接列表表示。

邻接列表是用于表示有限图的无序列表的集合。每个列表都描述了图中节点的邻居集。

给定节点将始终是图中的第一个节点(值为 1)。你必须将 给定节点的拷贝 作为对克隆图的引用返回。

示例 1:
输入:adjList = [[2,4],[1,3],[2,4],[1,3]]
输出:[[2,4],[1,3],[2,4],[1,3]]
解释:
图中有 4 个节点。
节点 1 的值是 1,它有两个邻居:节点 2 和 4 。
节点 2 的值是 2,它有两个邻居:节点 1 和 3 。
节点 3 的值是 3,它有两个邻居:节点 2 和 4 。
节点 4 的值是 4,它有两个邻居:节点 1 和 3 。

示例 2:
输入:adjList = [[]]
输出:[[]]
解释:输入包含一个空列表。该图仅仅只有一个值为 1 的节点,它没有任何邻居。

示例 3:
输入:adjList = []
输出:[]
解释:这个图是空的,它不含任何节点。

示例 4:
输入:adjList = [[2],[1]]
输出:[[2],[1]]

提示:

节点数介于 1 到 100 之间。
每个节点值都是唯一的。
无向图是一个简单图,这意味着图中没有重复的边,也没有自环。
由于图是无向的,如果节点 p 是节点 q 的邻居,那么节点 q 也必须是节点 p 的邻居。
图是连通图,你可以从给定节点访问到所有节点。

解法
题意:使用图的起始节点重新构建一个相同的图。情况分析:

  • 图是空的(没有节点)
  • 图上只有一个节点(注意要返回节点,而不是返回空)
  • 如果用队列来做的话:也就是BFS遍历,当遍历到当前节点ori,需要找到对应的新建的图上的该节点cur才能给cur赋值邻居,因此需要一个字典存储,该字典还可以用于判断ori的邻居是否在新图上已经存在;为了避免重复遍历节点(因为邻居可能重复),需要一个visit存储;为了避免重复把同一个未遍历过的邻居节点加入队列,需要判断队列中是否已经存在。
"""
# Definition for a Node.
class Node(object):def __init__(self, val = 0, neighbors = []):self.val = valself.neighbors = neighbors
"""
class Solution(object):def cloneGraph(self, node):""":type node: Node:rtype: Node"""if not node:return Noneif not node.neighbors:return Node(val=node.val)root = Node(val=node.val)dic = {1: root}q = [node]vis = set()while q:ori = q.pop(0)cur = dic[ori.val]#print(ori.val, cur.val)for x in ori.neighbors:#print(x.val, dic.keys(), vis)if x.val not in dic:tmp = Node(x.val)dic[x.val] = tmpcur.neighbors.append(dic[x.val])if x.val not in vis and x not in q:q.append(x)vis.add(ori.val)return root

目标和

给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。

返回可以使最终数组和为目标数 S 的所有添加符号的方法数。

示例 1:

输入: nums: [1, 1, 1, 1, 1], S: 3
输出: 5
解释:

-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

一共有5种方法让最终目标和为3。
注意:

数组非空,且长度不会超过20。
初始的数组的和不会超过1000。
保证返回的最终结果能被32位整数存下。

解法
题意:返回加减数组中每个数字和为目标数 S 的所有可能性。(如果用动态规划的思路的话:在背包问题中,我们要考虑物品放还是不放)
很快想到用DFS,定义函数f(i,target)表示i长度内目标为target的方法数,那么f(i,target)=f(i−1,target−nums[i])+f(i−1,target+nums[i])。直接这样做容易超时,所以可以想到用一个字典保存下来已经遍历过的方法数目。

class Solution(object):def findTargetSumWays(self, nums, S):""":type nums: List[int]:type S: int:rtype: int"""vis = {(0, 0): 1}res = self.dfs(nums, S, vis)return resdef dfs(self, nums, S, vis):if (len(nums), S) in vis:return vis[(len(nums), S)]elif len(nums) == 0:return 0vis[(len(nums), S)] = self.dfs(nums[1:], S - nums[0], vis) + self.dfs(nums[1:], S + nums[0], vis)return vis[(len(nums), S)]

二叉树的中序遍历

给定一个二叉树,返回它的中序 遍历。

示例:

输入: [1,null,2,3]1\2/3输出: [1,3,2]

输出: [1,3,2]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

解法
使用迭代方法

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution(object):def inorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""if root == None:return []res = []cur = rootstack = []while stack or cur:if cur:stack.append(cur)cur = cur.leftelse:cur = stack.pop()res.append(cur.val)cur = cur.rightreturn res

字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

示例:

s = “3[a]2[bc]”, 返回 “aaabcbc”.
s = “3[a2[c]]”, 返回 “accaccacc”.
s = “2[abc]3[cd]ef”, 返回 “abcabccdcdcdef”.

解法
题意:类似于计算器,返回k*字符串内部子串的结果
思路:遇到不同类型的字符进行不同方式处理,几种情况:

  • 数字:注意可能出现多位数
  • 字母:拼成tmp子串,用于后续的重复
  • 字符“]":将重复后的tmp子串再放入栈
  • 字符"[":重置数字、子串等

自己写的,比较麻烦:

class Solution(object):def decodeString(self, s):""":type s: str:rtype: str"""if not s:return ""stack = []for i, x in enumerate(s):if x != "]":stack.append(x)else:tmp = []while stack[-1] != "[":tmp.append(stack.pop())tmp = tmp[::-1]stack.pop()k = ""while len(stack) > 0 and stack[-1].isdigit():k = stack.pop() + kk = int(k)while k > 0:stack.extend(tmp)k -= 1return "".join(stack)

网上看的比较清晰简洁的方法:

class Solution(object):def decodeString(self, s):""":type s: str:rtype: str"""stack = []curNum = 0curString = ''for c in s:if c == '[':stack.append(curString)stack.append(curNum)curString = ''curNum = 0elif c == ']':num = stack.pop()prevString = stack.pop()curString = prevString + num * curStringelif c.isdigit():curNum = curNum * 10 + int(c)else:curString += creturn curString

图像渲染

有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。

给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。

为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。

最后返回经过上色渲染后的图像。

示例 1:

输入:
image = [[1,1,1],[1,1,0],[1,0,1]]
sr = 1, sc = 1, newColor = 2
输出: [[2,2,2],[2,2,0],[2,0,1]]
解析:
在图像的正中间,(坐标(sr,sc)=(1,1)),
在路径上所有符合条件的像素点的颜色都被更改成2。
注意,右下角的像素没有更改为2,
因为它不是在上下左右四个方向上与初始点相连的像素点。

注意:
image 和 image[0] 的长度在范围 [1, 50] 内。
给出的初始点将满足 0 <= sr < image.length 和 0 <= sc <image[0].length。
image[i][j] 和 newColor 表示的颜色值在范围 [0, 65535]内。

解法
很显然就是”迷宫“类问题,用dfs即可。也可以用队列解决

dfs方法:

class Solution(object):def floodFill(self, image, sr, sc, newColor):""":type image: List[List[int]]:type sr: int:type sc: int:type newColor: int:rtype: List[List[int]]"""if not image:return imagecurC = image[sr][sc]self.vis = [[False for i in range(len(image[0]))] for j in range(len(image))]image = self.dfs(image, sr, sc, curC, newColor)return imagedef dfs(self, image, r, c, curC, newC):image[r][c] = newCself.vis[r][c] = Trueif r > 0 and image[r - 1][c] == curC and not self.vis[r - 1][c]:image = self.dfs(image, r - 1, c, curC, newC)if r < len(image) - 1 and image[r + 1][c] == curC and not self.vis[r + 1][c]:image = self.dfs(image, r + 1, c, curC, newC)if c > 0 and image[r][c - 1] == curC and not self.vis[r][c - 1]:image = self.dfs(image, r, c - 1, curC, newC)if c < len(image[0]) - 1 and image[r][c + 1] == curC and not self.vis[r][c + 1]:image = self.dfs(image, r, c + 1, curC, newC)return image

队列:

class Solution(object):def floodFill(self, image, sr, sc, newColor):""":type image: List[List[int]]:type sr: int:type sc: int:type newColor: int:rtype: List[List[int]]"""m, n = len(image), len(image[0])color = image[sr][sc]image[sr][sc] = newColorvisited = [[0 for _ in range(n + 1)] for _ in range(m + 1)]dx = [1, -1, 0, 0]dy = [0, 0, 1, -1]q = deque()q.append([sr,sc])while q:x0, y0 = q.popleft()for k in range(4):x = x0 + dx[k]y = y0 + dy[k]if 0 <= x < m and 0 <= y < n and image[x][y] == color and visited[x][y] == 0:image[x][y] = newColorvisited[x][y] = 1q.append([x, y])return image

01 矩阵

给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。

两个相邻元素间的距离为 1 。

示例 1:
输入:

0 0 0
0 1 0
0 0 0
输出:

0 0 0
0 1 0
0 0 0
示例 2:
输入:

0 0 0
0 1 0
1 1 1
输出:

0 0 0
0 1 0
1 2 1

注意:
给定矩阵的元素个数不超过 10000。
给定矩阵中至少有一个元素是 0。
矩阵中的元素只在四个方向上相邻: 上、下、左、右。

解法
题意:找离每个1最近的0的距离
步骤:因为是最近距离,显然是BFS。开始想的方法是遍历矩阵,找到每个1之后再用BFS,显然复杂度非常高。后来看到网上的做法,其实这就相当于求每个0最近的1的距离,遍历一遍矩阵就可以了。

class Solution(object):def updateMatrix(self, matrix):""":type matrix: List[List[int]]:rtype: List[List[int]]"""if not matrix:return matrixres = [[0 for i in range(len(matrix[0]))] for j in range(len(matrix))]vis = [[False for ii in range(len(matrix[0]))] for jj in range(len(matrix))]queue = []for i in range(len(matrix)):for j in range(len(matrix[0])):if matrix[i][j] == 0:queue.append((i, j, 0))vis[i][j] = Truedx = [1, -1, 0, 0]dy = [0, 0, 1, -1]while queue:x0, y0, step = queue.pop(0)if matrix[x0][y0] == 1:res[x0][y0] = stepstep += 1for k in range(4):x = x0 + dx[k]y = y0 + dy[k]if x >= 0 and x <= len(matrix) - 1 and y >= 0 and y <= len(matrix[0]) - 1 and vis[x][y] == False:queue.append((x, y, step))vis[x][y] = Truereturn res                

钥匙和房间

有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。

在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。

最初,除 0 号房间外的其余所有房间都被锁住。

你可以自由地在房间之间来回走动。

如果能进入每个房间返回 true,否则返回 false。

示例 1:

输入: [[1],[2],[3],[]]
输出: true
解释:
我们从 0 号房间开始,拿到钥匙 1。
之后我们去 1 号房间,拿到钥匙 2。
然后我们去 2 号房间,拿到钥匙 3。
最后我们去了 3 号房间。
由于我们能够进入每个房间,我们返回 true。
示例 2:

输入:[[1,3],[3,0,1],[2],[0]]
输出:false
解释:我们不能进入 2 号房间。

提示:
1 <= rooms.length <= 1000
0 <= rooms[i].length <= 1000
所有房间中的钥匙数量总计不超过 3000。

解法
题意:判断是否每个房间都被visited过
方法:用队列或者栈应该都可以。

class Solution(object):def canVisitAllRooms(self, rooms):""":type rooms: List[List[int]]:rtype: bool"""if not rooms:return roomsqueue = []vis = [False for i in range(len(rooms))]vis[0] = Truefor x in rooms[0]:queue.append(x)vis[x] = Truewhile queue:top = queue.pop(0)for x in rooms[top]:if vis[x] == False:queue.append(x)vis[x] = Truefor i in range(len(vis)):if vis[i] == False:return Falsereturn True
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. angular 安装及初始化

    文章目录1 安装2 初始化/新建项目3 运行项目1 安装 前提是已经安装了nodejs和npm然后无其他要求。 为什么要安装nodejs和npm?理由如下&#xff1a; angular本身时利用js或者ts实现框架&#xff0c;想在本地运行需要js的解释器&#xff0c;nodojs即为脱离了浏览器的js解释器a…...

    2024/5/8 14:15:50
  2. 割双眼皮有害吗

    ...

    2024/4/20 19:32:33
  3. AngularJs模块化指令02(模板放标签)

    静静的贴代码。。。。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模块化例子02</title><script src"angular.js"></script><script>var appangular.module(&q…...

    2024/4/20 19:32:31
  4. AngularJs 路由模块化

    项目工程化: 代码模块化: 页面效果:...

    2024/5/8 17:39:02
  5. 无痕欧式双眼皮多少钱

    ...

    2024/4/20 19:32:28
  6. Angular 结合RequireJs实现模块化开发

    angular的指令是模块化很好的一个体现&#xff0c;下面我将只使用指令&#xff08;不用控制器&#xff09;&#xff0c;结合requirejs&#xff0c;实现模块化开发。 模块化关系图&#xff1a; 传统开发方式 <!--aaa模块--> <div><h3>this is aaa</h3>&…...

    2024/4/20 19:32:26
  7. 整形医院割双眼皮埋线好不好

    ...

    2024/4/20 19:32:25
  8. angular模块理解

    今天下雨&#xff0c;阴沉沉的 今天利用angular写了些模块&#xff0c;突然发现自己连最原始的定义都有点模糊了&#xff0c;那就重新梳理一下吧&#xff1a; //angular.module(name, [requires], [configFn]) var app angular.module("myApp" , []);app.controlle…...

    2024/4/30 3:40:25
  9. 割切双眼皮过程

    ...

    2024/5/8 13:00:06
  10. 割个双眼皮多少钱

    ...

    2024/5/8 12:35:38
  11. 双眼皮医院

    ...

    2024/5/8 16:17:58
  12. Android OutputStreamWriter's flush method throws IOException

    <span style="white-space: pre;"> Android开发弱网络客户端的时候,需要给服务器发送HTTP POST请求,首先进行设置</span><span style="white-space: pre;"> </span>URL url = new URL(urlString);connection = (HttpURLConnecti…...

    2024/5/8 17:58:31
  13. 韩式定点开眼角吸脂微创双眼皮多少钱

    ...

    2024/4/20 19:33:21
  14. 粒子滤波 应用_如何使用NativeScript开发粒子物联网应用

    粒子滤波 应用If youre developing any type of IoT product, inevitably youll need some type of mobile app. While there are easy ways, theyre not for production use.如果您要开发任何类型的物联网产品&#xff0c;则不可避免地需要某种类型的移动应用程序。 尽管有简单…...

    2024/4/20 19:33:19
  15. 双眼皮有几种做法

    ...

    2024/4/20 19:33:20
  16. 跨端开发面面谈之NativeScript从入门到放弃

    跨端开发面面谈之NativeScript从入门到放弃 ronniegong关注 0.3522018.05.21 11:29:49字数 2,712阅读 7,245 跨端开发面面谈之基于WebView的Hybrid开发模式一文总结了基于WebView的混合开发模式的发展路线和在各个方向的优化方式&#xff0c;简单介绍了基于这一模式的Ionic框…...

    2024/5/1 16:26:14
  17. 做割双眼皮手术要多少钱

    ...

    2024/4/20 19:33:15
  18. 如何在Nativescript角度应用程序中检测ibeacons

    At my work, we constantly think about ways to improve the user’s experience. One of the things I am working on is enabling our mobile app to aware of the user’s presence when the user come within proximity of certain rooms at our premise and automaticall…...

    2024/4/20 19:33:14
  19. 割双眼皮的效果

    ...

    2024/4/20 19:33:13
  20. 韩式双眼皮好吗

    ...

    2024/4/20 19:33:13

最新文章

  1. 【C++】——内存管理

    &#x1f600;&#x1f600;前言 好久没更新了&#xff0c;五一小长假&#xff0c;有点玩脱了&#xff0c;今天赶紧补一篇博客&#xff0c;回回状态 一 c/c内存分配 下面看下面一段代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; i…...

    2024/5/8 19:12:35
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 【超简单】基于PaddleSpeech搭建个人语音听写服务

    一、【超简单】之基于PaddleSpeech搭建个人语音听写服务 1.需求分析 亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?当您面对成吨的会议录音,着急写会议纪要而不得不愚公移山、人海战术?听的头晕眼花,听的漏洞百出,听的怀疑人生,那么你…...

    2024/5/8 8:00:20
  4. Kafka架构概述

    Kafka的体系结构 Kafka是由Apache软件基金会管理的一个开源的分布式数据流处理平台。Kafka具有支持消息的发布/订阅模式、高吞吐量与低延迟、持久化、支持水平扩展、高可用性等特点。可以将Kafka应用于大数据实时处理、高性能数据管道、流分析、数据集成和关键任务应用等场景。…...

    2024/5/6 22:36:40
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57