[leetcode653]两数之和Ⅳ-输入bst
原题 给定一个bst和一个整数k 问是否存在两个数字之和等于k 表面上是个easy题 实际上有点困难 dfs直接使用dfs 类似leetcode第一题做法 缺点是未使用到bst中序有序这一特点 12345678910111213class Solution{public: set<int> st; bool findTarget(TreeNode *root, int k
[Acwing158]项链(字符串)
https://www.acwing.com/problem/content/description/160/ 看leetcode昨天的难题的题解 y总随口提了一下最小表示法 于是乎就有了这篇题解 求一个字符串的最小表示 即将字符串置换 求哪种置换时 得到的字符串字典序最小 求这一最小表示 如32245781 最小表示为13224578 具体求法 首先将字符串复制到最后 以解决字符串成环问题 之后
[leetcode6017]向数组中追加 K 个整数
https://leetcode-cn.com/problems/append-k-integers-with-minimal-sum/ 挺麻烦的题 给一个无序数组 要求插入k个正整数 这k个整数不能和数组中的数重复 求这k个数的和最小 显然 从1开始插是显而易见的办法 第一次方法 模拟直接开算 先用set存一下数 方便查找里面有没有出现过某个数 之后直接从1开始累加 遇到有的多加一个 结果TLE
[leetcode6019]替换数组中的非互质数
https://leetcode-cn.com/problems/replace-non-coprime-numbers-in-array/ 咱也不知道着为啥算hard….就是相邻的非互质数 二合一成最小公倍数 之后不断合成 直到数组中没有相邻的互质数 思路 模拟即可 用栈 不断向左边合成 每次判断栈顶两个元素 跑到最后即可 123456789101112131415161718192021cla
c++ 个人做题技巧汇总
其实主要就是记录各种stl&string的用法…一老忘主要很容易 今天学了 下周这个时候忘了 又去用稀奇古怪的写法 贼头疼 string string倒置 reverse(s.begin(),s.end()) 使用char构造string 12char a='a',b='0';string s={a,b}; to_str
[leetcode564]寻找最近的回文数
https://leetcode-cn.com/problems/find-the-closest-palindrome/ hard题 有点难 自己想了半天没想明白 看y总的思路明白了这道题 属于脑筋急转弯类型的题 给定一个数 求最近的回文数 可大可小 绝对值最小 若有两个相同的 返回较小的那个 思路:根据一个数的前半段进行构造 直接构造回文数 给定 12345 构造成 12321 12421 1