[算法训练营day4]LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表II LeetCode24. 两两交换链表中的节点 题目链接:24. 两两交换链表中的节点 初次尝试 比较暴力的解法,利用三个指针,进行类似反转链表里面的反转next指针指向的操作,然后三个指针整体向后移动到下一组节点,暴力但是ac. /** * Definition for singly-link…
[算法训练营day1]LeetCode704. 二分查找 LeetCode27. 移除元素 LeetCode704. 二分查找 题目链接:704. 二分查找 初次尝试 看到题目标题是二分查找,所以尝试使用二分查找的思想,代码思路是一直循环二分,直到两个指针相等,再判定所指元素是否等于target,这样对于任何输入都需要二分至尽头才能得出结论,果不其然提交后超时. class Solution { public: int search(vector<int>& nums, int tar…
[算法训练营day7]LeetCode454. 四数相加II LeetCode383. 赎金信 LeetCode15. 三数之和 LeetCode18. 四数之和 LeetCode454. 四数相加II 题目链接:454. 四数相加II 初次尝试 没有思路,对于map的使用还不是非常熟练,正好借这几个题多练习一下. 看完代码随想录后的想法 四个数组两两一组,写成两个嵌套的for循环,这样可以保证时间复杂度最小,其中使用map的原因是不仅要统计前两个数组的元素和,还要统计每个和出现的次数. cla…
[算法训练营day8]LeetCode344. 反转字符串 LeetCode541. 反转字符串II 剑指Offer05. 替换空格 LeetCode151. 翻转字符串里的单词 剑指Offer58-II. 左旋转字符串 LeetCode344. 反转字符串 题目链接:344. 反转字符串 初次尝试 双指针法,比较简单的一道题,熟悉一下字符串的操作. class Solution { public: void reverseString(vector<char>& s) { int l…
目录 引言 题目 1.两数之和 题目 解题笔记 7.反转整数 题目 解题笔记 9.回文数 题目 解题笔记 13.罗马数字转整数 题目 解题笔记 14.最长公共前缀 题目 解题笔记 20.有效的括号 题目 解题笔记 26.删除排序数组中的重复项 题目 解题笔记 27.移除元素 题目 解题笔记 35.搜索插入位置 题目 解题笔记 38.报数 题目 解题笔记 53.最大子序和 题目 解题笔记 67.二进制求和 题目 解题笔记 引言        虽然说前端设计的算法复杂度并不高,但是像我这种懒龙,还是…
算法题 14 LeetCode 147 链表的插入排序: 解题代码: # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def insertionSortList(self, head): """ :type head: ListNode…
第一题150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 注意 两个整数之间的除法只保留整数部分. 可以保证给定的逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除数为 0 的情况. ψ(`∇´)ψ 我的思路 题目上提示的已经很清晰了 去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果. 适合用栈操作运算:遇到数字则入栈:遇到算符则取出栈…
第一题344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. ψ(`∇´)ψ 我的思路 取到字符串的中点,依次交换前后两部分的位置 package string; public class ReverseString { public static void reverseString(char[] s) { char temp; for (int…
Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的最长回文子串 时间复杂度:O(N) 算法步骤: 1.添加特殊字符 由于回文串的长度可奇可偶,比如"bob"是奇数形式的回文,"noon"就是偶数形式的回文,马拉车算法的第一步是预处理,做法是在每一个字符的左右都加上一个特殊字符,比如加上'#',那么 bob -->…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由落影发表 前言 LeetCode上的题目是大公司面试常见的算法题,今天的目标是拿下5道算法题: 题目1是基于链表的大数加法,既考察基本数据结构的了解,又考察在处理加法过程中的边界处理: 题目2是求数组出现频率前k大的数字,考察思维能力,代码很短: 题目3是给出从两个数组中选择数字,组成一个最大的数字,考察的是贪心的思想: 前三个都偏向于考察想法,实现的代码都比较简单: 题目4.5是数据结构实现题,也是大部分人比较头疼的题目,因为需…