算法解题_51CTO博客
基础算法 前言 听完课然后来补题 空下没有写的题大概率是不会写了 枚举 输出 \([l, r]\) 之间的所有整数 生成全排列 输出给定集合的所有子集 输出给定集合的所有子集以及每个子集的所有子集 在棋盘上枚举八个方向 输出给定值的所有约束 暴力 作为部分分的做法 Meet in the middl ...
转载 2021-08-14 22:32:00
85阅读
2评论
这两天在刷Leetcode N皇后和单词搜索时,探究回溯算法解题思路,结合资料整理框架模版,便于总结和参考。解决回溯问题,就是解决决策树问题,当前的决策对后面的选择至关重要,话说条条大路通罗马,每一次决策过程就是遍历一条可走得通的路,但是算法是有条件的,往往只有一条几条路走得通。 在决策过程中过程
转载 2021-11-09 15:10:51
145阅读
一、概念 1、回溯 Back Track 2、步骤 路径、选择列表、结束条件 二、全排列46 class Solution { List<List<Integer>> res = new LinkedList<>(); public List<List<Integer>> permute(int[]
原创 2022-05-27 17:52:04
64阅读
求和问题preSum方法
原创 2022-02-11 10:13:45
164阅读
求和问题preSum方法
原创 2021-09-01 09:43:17
493阅读
软考算法解题技巧探析 软考是计算机技术与软件专业技术资格(水平)考试的简称,是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。在软考中,算法题是必考且难度较大的一部分。很多考生在面对算法题时,往往会感到无从下手。因此,掌握一些针对算法题的解题技巧,对于提高软考成绩具有十分重要的意义。本文将从以下几个方面探讨软考算法题的解题技巧。 一、理解题目需求 在解答算法题时,首先要做的就
原创 2023-11-14 19:58:56
40阅读
1. 前言 由于后面还有很多题型要写,贪心算法目前可能就到此为止了,上一篇博客的地址为 LeetCode解题记录(贪心算法)(一) 下面正式开始我们的刷题之旅 2. 贪心 763. 划分字母区间(中等) 题目链接 思路 想切割,要有首尾两个指针,确定了结尾指针,就能确定下一个切割的开始指针。 遍历字 ...
转载 2021-07-18 20:09:00
82阅读
2评论
算法思想概述 设A的坐标为0,那么房子的坐标将依次为di 根据题意,坐标为di的房子应该位于距离某个基站的4Km范围内 等价于 [di - 4, di + 4]内一定至少存在一个基站,所以将问题的实际分析对象是房子对应的每一段区间。 按照房子顺序顺次考虑对应的区间 采用的贪心策略是,如果一个区间内已有基站,那么不再考虑放置新的基站;反之,总是将基站安排在尽可能靠后的位置,即区间的末尾。 关于判断某
原创 精选 2023-12-05 22:57:24
413阅读
Balanced Binary Tree Better Solution[L
原创 2021-07-14 14:19:56
80阅读
Description 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目.精确地说,他们有P (1 #includeusing namespace std;int n,p,ans;int a[1010],b[1010],sa[1010]...
转载 2018-03-23 19:54:00
53阅读
2评论
单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。本文就通过几道算法题来看看单调栈模板的使用。单调栈模板首先,看一下NextGreaterNumber的原始问题,这是力扣第496题「下一个更大元素I」:给你一个数组,返回一个等长的数组,对应索引存储着下一个更大元素,如果没有更大的元素,就存-1。函数签名如下:vectorint>next
原创 2021-04-07 09:24:27
1003阅读
单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。本文就通过几道算法题来看看单调栈模板的使用。单调栈模板首先,看一下 Next Greater Number 的原始问题,这是力扣第 496 题「下一个更大元素 I」:给你一个数组,返回一个等长的数组,对应索引存储着下一个更大元素,如果没有更大的元素,就存 -1。函数签名如下:vector
原创 2021-04-07 09:33:37
666阅读
【写在前面】 就不写题意了,紫书上面有中文翻译,下面水题我直接给出代码了,一些需要推导的详细写一下!【3-1】水题,顺序扫描一遍就行了。复杂度O(len)char s[82];bool vis[82];int main(){ int T; scanf("%d",&T); REP(i, T){ memset(vis, false, sizeof(vis));
原创 2022-04-19 17:34:22
58阅读
毕业半年, 平时工作总是关注业务、架构,而却越来越少关注运算性能, 也再也没有做过任何涉及算法的工作了 希望有时间把这些拉下的东西拾起来,毕竟不论是使用什么语言,从事什么行业,只要是程序员,算法才是真正的基础。 题目来自leetcode,代码语言通常为C/C++,后期可能个别题目会用Golang
原创 精选 2018-02-03 18:15:55
3165阅读
一、二分查找使用条件:有序数组+查找目标元素;复杂度:O(log n);优化:实际使用求中间mid索引建议用这种方法:int mid = left + (right-left)/2 可以防止left+right溢出(超出整数范围)
原创 2021-12-29 18:14:26
193阅读
【题目链接】点击打开链接   是: 960626【写在
原创 2022-04-19 16:57:51
36阅读
数独游戏的解法:先将数独分为九个格子,用一个数组将每个小九宫格的候选数存放下来,将候选数挨个放进数独里的空位,如果这一行和这一列都没有这个数字,继续放入下一个,如果不能放入的话就回到上一步继续尝试,直到成功求出数独的解为止; 比如这个数独第一个九宫格的候选数就有1,2,7,8,9,我们需要从1开始放入第一个格子挨个尝试直到8的时候发现剩下的两个格子都不能放入 这个时候我们就要撤回上一个插入的7,
【题目链接】点击打开链接【写在前面】 这章的部分习题很难,我现在的能力并不能全部做出来这些题,暂时我只能做到这里了,接下来我把我做出来的题目分享一下解题方法,等自己能够做剩下的题了,再回来解决这些题。然后由于书上的例题和习题的题意都有中文描述,我就不写题意了,只写我的做法。【例题篇】【5-2】由于每个木块堆的高度不确定,所以用vector来存是非常合适的,并且木块堆的个数不超过
原创 2022-04-19 16:57:32
46阅读
:https://software.intel./zh-cn/blogs/2014/03/03/?utm_campaign=&utm_source=intel..net&utm_medium=Link&utm_content=%20others-%20suanfa 注:为了
转载 2014-04-23 08:02:00
59阅读
2评论
一、参考资料1. 爬楼梯问题解析力扣
原创 2022-07-28 14:27:17
51阅读
  • 1
  • 2
  • 3
  • 4
  • 5