leetcode dfs 110

2023年4月8日leetcode练习心得

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。 来源:力扣(LeetCode)链接:https://leetcode.cn/prob ......
leetcode 心得 2023

HJ67_24点游戏算法_多维递归_DFS(深度优先搜索)

思路: 多维递归,深度有限遍历加减乘除四种情况。 知识点: 1、多维递归不能对传递的变量进行修改,否则无法回溯。 应该传递一个新地址的变量,如代码所示,传递切片的列表,不修改列表 2、搜索遗漏。两括号比如((9-4)-1)*6 选取任意一个数作为第一个运算数与24运算,不能找出所有24点的计算方法。 ......
算法 深度 DFS HJ 67

Leetcode(剑指offer专项训练)——DFS/BFS专项(1)

计算除法 题目 给定一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数 ......
专项 Leetcode offer DFS BFS

LeetCode习题——在排序数组中查找元素的第一个和最后一个位置(二分查找)

在排序数组中查找元素的第一个和最后一个位置 力扣链接:在排序数组中查找元素的第一个和最后一个位置 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须 ......
数组 习题 LeetCode 元素 位置

4月7日leetcode联系随笔,关于使用位运算找到数组中只出现一次的数字

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且不使用额外空间来解决此问题。 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/singl ......
数组 leetcode 随笔 数字

4月7日leetcode随笔,异或的灵活运用

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sin ......
leetcode 随笔

Leetcode习题——搜索插入位置

搜索插入位置 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], target = 5 输出: 2 示例 2: 输入 ......
习题 Leetcode 位置

代码随想录Day22-Leetcode235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/ 又玩了一天,手又生疏了好多; 这道题看了题解,先用公共解法了,之前的题没刷,就给现在留坑了 /** ......
随想录 节点 祖先 随想 Leetcode

leetcode1000. 合并石头的最低成本

有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。 找出把所有石头合并成一堆的最低成本。如果不可能,返回 -1 。 来源:力扣(LeetCode) 链接:https://leetcod ......
leetcode 石头 成本 1000

前缀和-leetcode303

LeetCode上的题目 "303. 区域和检索 - 数组不可变",是一个相对简单的问题。 问题描述: 给定一个整数数组 nums,求出该数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i, j 两点。 实现 NumArray 类: NumArray(int[] nums) 用整数数组 ......
前缀 leetcode 303

leetcode简单题目

关于ListNode报错 public class ListNode{ int val; ListNode next; public ListNode(int x){val=x;} } 关于程序报错 error: no viable conversion from 'ListNode *' to ' ......
leetcode 题目

【LeetCode剑指offer 02】矩阵中的路径(老鼠走迷宫plus,应用深度优先搜索与回溯机制)

矩阵中的路径 https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/ 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照 ......
矩阵 迷宫 路径 深度 LeetCode

【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列

数组中重复的数字 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, ......
队列 数组 LeetCode 两个 数字

DFS分布式文件系统

一、GFS文件系统概述 1.GlusterFS简介GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。MFS传统的分布式文件系统大多通过元服务器来存储元数 ......
分布式 文件 系统 DFS

DFS

1. n-皇后问题 题目描述 $n-$皇后问题是指将 $n$ 个皇后放在 $n \times n$ 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 $n$,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含整数 $n$。 输出格式 ......
DFS

110. 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 class Solution { public: int get_son_depth(TreeNode* root){ if(root == null ......
110

第二十届浙大城市学院程序设计竞赛 I.Magic Tree DFS序线段树

传送门 大致思路: ** 我们知道dfs序上的整颗子树dfs序编号连续,因为每次删除一个点或者新增一个点都导致子树上所有点的深度加一或者减一。由于是区间修改所以我们考虑dfs序上建线段树。** ** ** #include <iostream> #include <cstring> #include ......
线段 程序设计 程序 学院 城市

Leetcode(剑指offer专项训练)——DP专项(7)

矩阵中的距离 题目: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 链接 TLS思路题解 暴力DFS的结果是超时😢,就是找每个位置的距离它最近的零点的位置 class Solu ......
专项 Leetcode offer

LeetCode 81. 搜索旋转排序数组 II

1 class Solution { public: bool search(vector<int>& nums, int target) { int index = -1; for (int i = 0; i < nums.size() - 1; ++i){ if (nums[i] > nums[ ......
数组 LeetCode 81 II

LeetCode 力扣 205. 同构字符串

给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。 示例 1: 输入 ......
字符串 字符 LeetCode 205

[LeetCode] 1339. Maximum Product of Splitted Binary Tree 分裂二叉树的最大乘积

Given the root of a binary tree, split the binary tree into two subtrees by removing one edge such that the product of the sums of the subtrees is max ......
乘积 LeetCode Splitted Maximum Product

[LeetCode] 2405. Optimal Partition of String

Given a string s, partition the string into one or more substrings such that the characters in each substring are unique. That is, no letter appears i ......
Partition LeetCode Optimal String 2405

蓝桥杯(全球变暖dfs)

蓝桥杯(全球变暖dfs) import java.util.Scanner; /** * 该题使用了深度优先算法dfs用于把相连的#号当成一块大陆,并通过数组记录下有几块大陆 * dfs算法并不难,只要对用dfs处理过后留下的aes数组和sea数组进行处理得到结果即可 * 我的思路就是 * 1、se ......
蓝桥 全球 dfs

【LeetCode排序专题02】最小k个数,关于快速排序的讨论

最小k个数 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k ......
个数 LeetCode 专题

代码随想录Day20-Leetcode654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

654.最大二叉树 题目链接:https://leetcode.cn/problems/maximum-binary-tree/ 基本的模拟思路很快 /** * Definition for a binary tree node. * function TreeNode(val, left, rig ......
随想录 随想 Leetcode 代码 Day

滑动窗口-leetcode344-反转字符出啊

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s = ["h","e","l","l","o"] 输出:["o","l","l","e","h" ......
字符 leetcode 344

滑动窗口-leetcode-167-俩树之和

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。 你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。 你所设计的解决方案必须只使用常量级的额外空间。 示例 1: 输入:numbers = [2,7,11 ......
之和 leetcode 167

快慢指针-leetcode27移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的 ......
快慢 指针 leetcode 元素 27

快慢指针-leetcode-26

题目描述: 给定一个已经排序好的数组,删除重复的元素,使每个元素只出现一次,并返回新的数组长度。 不要为另一个数组分配额外的空间,必须采用 O(1) 额外内存复杂度的原地算法来解决这个问题。 示例 1: 输入: nums = [1, 1, 2] 输出: length=2, nums=[1,2] 解释 ......
快慢 指针 leetcode 26

【LeetCode排序专题01】由旋转数组的最小数字引出的关于排序算法的讨论(冒泡排序、二分查找+暴力法)

旋转数组的最小数字 剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1 ......
数组 算法 暴力 LeetCode 数字