自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(259)
  • 收藏
  • 关注

原创 SAT Encoding and CDCL Algorithm听课笔记

先选择两个未赋值的文字作为监测文字,若其中的监测文字被赋值后则去寻找其他未被赋值的文字作为监测文字,若最后的两个监测文字重合,即只剩下一个未被赋值的文字,则为单元子句(unit clause)假设之前已经对c=0.f=0进行赋值,现在对a=0进行赋值。最后一个子句会出现冲突,这样我们可以得出一个新的学习子句。即a,c,f最少有一个为1,同时为0则会出现冲突。如果x不出现在公式的别的地方,那么两者可以等价。通过监测文字来判断当前子句是否是单元子句。

2023-11-07 16:22:06 180

原创 【记录】Linux常见命令

【代码】【记录】Linux常见命令。

2023-10-20 13:46:21 85

原创 每日一题leetcode--使循环数组所有元素相等的最少秒数

相当于扩散,每个数可以一次可以扩散到左右让其一样,问最少多少次可以让整个数组都变成一样的数。使用枚举,先将所有信息存到hash表中,然后逐一进行枚举,计算时间长短用看下图。考虑到环形数组,可以把首项+n放到最后,这样for循环就相当于前后可以联通。

2023-08-16 11:20:33 270

原创 DPLL整理的一些内容

DPLL算法是一种搜索算法,思想与DFS十分相似,或者说DPLL算法本身就属于DFS的范畴,其类似于上述我们设想的“暴力”算法:搜索所有可能的赋值排列。具体地说,算法会在公式中选择一个变量(命题变号),将其赋值为True ,赋值后的公式,如果简化的公式是可满足的(递归地判断),那么原公式也是可满足的。否则就反过来将该变量赋值为False ,再执行一遍递归的判定,若也不能满足,那么原公式便是不可满足的。

2023-05-09 22:59:41 242

原创 每日一题leetcode--反转字符串中的元音字母

没啥说的,脑子不知道咋瓦特了。

2022-10-25 17:43:47 85

原创 每日一题leetcode--二叉树展开为链表

因为要求是在原二叉树上面更改,所以没法用先序把二叉树的val保存下来在新建TreeNode来重新建树,用的思路比较新,第一次做大概率想不出。

2022-10-20 18:09:12 186

原创 每日一题leetcode--乘积最大子数组(DP)

乘积最大子数组 本来以为就是dp[i]=max(dp[i-1]*nums[i],dp[i]),结果发现有符号可以变得更大,直接就不会了思路: 思路也是很巧妙,确实没想到

2022-10-17 22:26:54 71

原创 各种类型题目总结--贪心(更新中)

【代码】各种类型题目总结--贪心(更新中)

2022-10-15 12:48:28 606

原创 各种类型题目总结--队列(更新中)

思路:递归,将u结点的左子树与v结点的右子树放入队列,u结点的右子树与v结点的左子树放入结点,判断是否相同。

2022-10-15 11:28:12 72

原创 各种类型题目总结--动态规划(更新中)

dp[i]表示前i个元素中,到dp[i]的最大上升序列数。

2022-10-15 11:27:28 83

原创 各种题类型总结--二叉树(2)

PS:因为没有这道题的oj,所以不确定代码是否正确。本质都是二叉树遍历,整理几种遍历类型的题型。思路:根据后序遍历改变的来,基本没有啥变化。题目:查找结点值为x的二叉树的所有祖先。

2022-10-10 20:41:38 84

原创 各种题类型总结--二叉树(1)

方法1:左子树遍历完以后,然后回溯到父节点向右子树走思路:用BFS就可以了,没什么难度。

2022-10-05 20:24:57 449

原创 每日一题leetcode--二叉树的所有路径

使用vector来存储数据,并且使用递归。

2022-10-01 09:02:36 562

原创 各种题类型总结---栈

思路1:用队列+栈的方法,一个是先进先出,一个是先进后出,正好互补。思路2:将前半段放入栈中,与后半段进行对比。

2022-09-28 16:35:40 426

原创 各种类型题目总结---链表

注:这是针对leecode过题设置的前驱节点,实际考研的代码题个人感觉没必要这样写。方法一:断开头节点然后使用头插法(较易理解)方法二:反转指针(较难理解)

2022-08-28 22:11:53 141

原创 【C++】string或者char*转int的atoi函数用法||int转string的to_string用法

atoi函数,但是要带.c_str();

2022-07-21 22:07:59 378

原创 leetcode中的vector嵌套如何读取数据

for循环的auto,一直不是很会使用,记录一下。题目是leetcode997。

2022-07-18 18:25:33 1603

原创 每日一题leetcode--二叉搜索树第k小值

请你设计一个算法查找其中第。个最小元素(从1开始计数)。给定一个二叉搜索树的根节点。记录一下,以备不时之需。

2022-07-17 21:34:22 53

原创 每日一题leetcode--路经总和(dfs||bfs+树)

深搜就行,注意dfs函数最后一位是去掉当前vector中的最后一位。

2022-07-16 11:36:37 52

原创 每日一题leetcode--重排链表(链表经典操作题型)

思路:究其缝合怪,这一题其实顶三题首先找到链表的中间结点,用快慢指针,当快指针走完的时候慢指针再中间的位置,然后需要将后半部分的链表进行倒置,这又是一个题,最后需要将两个链表进行合并,这又是一个题,这个题及其考演基础知识,也是很经典的一个好题。反转链表:原先是l1->l2->l3->NULL;这样子,现在要把它改成 NULL...

2022-07-12 21:47:32 154

原创 每日一题leetcode--两数相加(链表)

不算难,主要是练基本概念。要设两个head,一个用来不动到时候返回,还有一个负责不断建立链表。

2022-07-10 21:30:37 85

原创 每日一题leetcode--划分字母区间(思维)

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。示例:输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。 不咋好想,也能是自己做的题太少了吧也算贪心

2022-07-06 22:24:36 94

原创 每日一题leetcode--单词规律(哈希表)

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba", str = "dog cat cat fish"输出: false用两个哈希表,一个char对应string,一个string对应ch

2022-07-06 21:40:42 129

原创 每日一题leetcode--删除并获得点数(DP)

给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入:nums = [3,4,2]输出:6解释:删除 4 获得 4 个点数,因此 3 也被删除。之后,删除 2 获得 2 个点数。总共获得 6 个点数。挺恶心的一道题,看了半天也才差不多知道了 主要注意for

2022-07-01 21:56:52 121

原创 每日一题leetcode--打家劫舍2

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。相

2022-07-01 21:17:59 158

原创 每日一题leetcode--合并区间

这题我记得是海大20年的真题思路也不是什么算法,感觉在考场现场想不是很现实,还是得提前做过leetcode官方解答:我们用数组 merged 存储最终的答案。首先,我们将列表中的区间按照左端点升序排序。然后我们将第一个区间加入 merged 数组中,并按顺序依次考虑之后的每个区间:如果当前区间的左端点在数组 merged 中最后一个区间的右端点之后,那么它们不会重合,我们可以直接将这个区间加入数组 merged 的末尾;否则,它们重合,我们需要用当前区间的右端点更新数组 merged 中最后一个区间的右端点

2022-06-29 15:50:33 97

原创 每日一题leetcode--腐烂的橘子(BFS)

994. 腐烂的橘子 - 力扣(LeetCode)刚开始写的时候没有考虑层次遍历,后来发现用了层次遍历也不对,后来发现是要统计个数的锅,因为要的是什么时候全部腐烂,如果都腐烂就要跳出来了,但此时还有继续循环,。...

2022-06-25 21:53:30 76

原创 每日一题leetcode--01矩阵(DP||BFS)

输出一个矩阵,矩阵表示非0点到最近的0点的最短距离思路1:多源BFS,将所有的0点放入queue中,然后进行BFS思路2:DP通过推到可以知道当矩阵不为0的时候dp[i][j]=min(上下左右四个方向的dp),如果为0就是0,可以从四个方向,及左上,左下,右上,右下四个方向进行双重for循环,每次判断的min值就是两个,分别对应开始的方向,虽然是从四个方向进行走,但实际上只需要从两个方向走就可以完成所有的情况的判断,因为如果从左上方走的话,进行一遍for循环后已经找到当前点从左上以及左边的最小值,只

2022-06-25 21:03:11 142

原创 每日一题leetcode--岛屿的最大面积(DFS)

问题就是求给你的矩阵里面最大的岛屿面积经典DFS

2022-06-25 16:47:35 72

原创 每日一题leetcode--对称二叉树的判断(树的练习)

递推的方法来走,还是使用队列的方法,同时放入root结点的left结点以及right结点然后一次取出两个结点进行判断,注意判断条件较多,不是只有一个判断val值的大小同时放入的顺序也有考究,因为是对称二叉树,所以判断的时候也是要对称判断,放入的时候就要考虑,先放入left的left,然后放入right的right,这样这俩拿出来判断大小的时候是判断对称二叉树的,然后让如left的right,放入right的left,理由相同。递归的方法不详细阐述,思路差不多,但是不算是特别好想,也容易写错...

2022-06-23 17:11:46 1505

原创 每日一题leetcode--二叉树的层序遍历(BFS)

vector的嵌套,保留一下,平常用的不多。思路不难,至于层序的话,多加一个for循环,用len来计算一下当前层数的结点数。

2022-06-23 16:04:10 49

原创 每日一题leetcode--反转链表(链表练习)

本来的链表是1->2->3等类似,然后需要变成3->2->1->NULL,所以需要一个next指针来保存一下list->next的位置,毕竟是要把next指针位置更改,然后再设一个prev指针初始指向NULL,每次变化的时候让prev指向当前list位置...

2022-06-18 18:05:06 64

原创 每日一题leetcode--反转字符串中的单词 III(字符串处理)

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入:s = "Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"示例 2:输入: s = "God Ding"输出:"doG gniD"开一个新string保存,然后开始遍历,当碰到空格的时候,从后往前反向输入进t里面,注意空格可能有连续的多个。...

2022-06-17 22:19:32 163

原创 每日一题leetcode--合并链表(链表练习)

基本链表操作

2022-06-17 20:17:07 38

原创 每日一题leetcode--环形链表(链表练习)

给你一个链表的头节点 ,判断链表中是否有环。1.快慢指针一个快指针一次走两格,慢指针一次走一格,如果存在闭环的话快慢指着早晚会相遇2.哈希表遍历可以使用哈希表来存储所有已经访问过的节点。每次我们到达一个节点,如果该节点已经存在于哈希表中,则说明该链表是环形链表,否则就将该节点加入哈希表中。重复这一过程,直到我们遍历完整个链表即可。...

2022-06-17 19:51:55 182

原创 每日一题leetcode--移动零(双指针用法)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]思路:使用双指针来走,设定左右指针,左指针指向已处理字符串的尾部(初始位置左右指针都是0),右指针指向要处理得的位置,如果右指针指向的字符不是0,则交换两个指针所指向的数,如果是0的话做指针不动,右指针++;倒是

2022-06-16 21:53:28 91

原创 每日一题leetcode--买卖股票的最佳时机(DP)

题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是

2022-06-13 20:22:32 97

原创 每日一题leetcode--两个数组的交集 II(哈希表)

题目:给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]思路:用哈希表来,设定一个mp的哈希表(定义还是用unordered_map),然后将n

2022-06-13 19:40:22 137

原创 每日一题leetcode-最长回文子串(DP)

思路1:暴力,但是过不了全部数据,只能过1/3左右,时间复杂度高 注意:substr的使用:思路2:DP 注意:

2022-06-11 17:39:05 69

原创 每日一题leetcode:无重复字符的最长子串(哈希表)

思路:设定i跟j一个跟踪前面一个跟踪后面,设定哈希函数unordered_map,通过map的find函数,如果在s[j]的时候在i到j-1的区间内存在相同的字符了,那就把i的位置更新到存在相同字符位置的下一位,以保证区间内所有的字符都没有重复的。如果没有重复的就让j++注意:用到unordered_map参考代码:注意:map的find函数,如果找到关键字等于val的元素,返回其迭代器,如果找不到,返回end()。...

2022-06-10 18:50:29 1405

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除