![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日算法一题
ForestSpringH
学习使人进步
展开
-
分享一道手搓链表玩矩阵的算法题
没事coding来!被躺着了我的好兄弟!原创 2022-08-08 19:10:58 · 280 阅读 · 0 评论 -
算法T03
给你一个随机数组,再给你一个目标值,数组中的元素全都需要参与计算,但是取+或是取-是随机的,问:有多少种符号规律使得他们的结果等于目标值?(算法优化的核心知识其实是数学公式) 我的第一想法是递归,或者动态规划,最简单的就是递归了吧?不过算法的时间复杂度来说,递归一般就是最麻烦的,我在解的时候想到了优化方法,就是做数学公式转化问题为一个简单的背包问题: public class target { int Dg(int[]arr,int index,int target) { ...原创 2022-03-13 18:07:29 · 293 阅读 · 0 评论 -
算法T02
字符移动,现在给你一个随机的只含有G与B字符的字符数组,问:如果将G与B各放一边的话最少需要移动几次?每次移动只能替换相邻位置的字符。 我的思路有两个,第一个是暴力法,但是面试用暴力法肯定是没有分数的,所以我利用指针来解决,由于头指针与尾指针没有回退,而是扫描一遍数组甚至扫描完之前就结束了,所以时间复杂度最多是BIGO(N);代码与注释如下: public class zifuyidong { //思路:运用两个指针front与rear代表头与尾,刚开始front=rear,当头在数组的第一个位置时.原创 2022-03-12 22:57:20 · 330 阅读 · 0 评论 -
算法T01
绳子最大覆盖问题:现有一个数组,这个数组的数值分布在X轴的对应坐标上,给你一个长l的绳子,问最大覆盖的节点数是多少? 我的思路有两个,当然第一想法是双重for循环暴力求解,时间复杂度O(N2),但是既然是在学习算法,就不能这么解了,我想到了两个写法,第一个:把每一个结点当做绳子的末尾,那么就会得到每一个点作为绳尾时覆盖的结点个数,在比较个最大值就可以了,当然当绳子尾部在数组靠后方的时候,就要用到二分法了,时间复杂度就是O(Nlog2N)。第二个就是下面的解法,个人认为是最优解吧!时间复杂度只有O(N).原创 2022-03-11 20:35:36 · 195 阅读 · 0 评论