Partition Array According to Given Pivot
Partition一个array, 要求stable.. 这个c++有stable_partition的方法, java没有..
Partition一个array, 要求stable.. 这个c++有stable_partition的方法, java没有..
给两个数字, 大减小, 求多少步能减到0.
给一个矩阵和一个bot的起始位置还有一串命令, 求能运行多少个这个命令的suffix命令. 这题就是模拟题.
给一个按照绝对值排序的链表, 求按照数字排序的链表. 这题就是先拆分成pos和neg两个链表, 然后如果neg是空的, 返回pos, 如果不是, 翻转neg后连上pos再返回.
给一个字符串, 求所有子字符串的元音字母的和. 观察可以知道如果某一个字符是元音, 那么所有的包含这个元音的字符串的个数是它前边的所有字符的个数加上后边所有字符的个数.
给一个矩阵, 每个格子都能往下面的相邻的格子落, 问怎么落的相加后的和最小. 这题就是典型的矩阵dp.
定义一个alternating subsequence sum为偶数相加减去奇数相减的和. 求最大的一个. 这题就是找两个上下波动的本地最值, 用dp做, 选的方法只有从当前最大的even或者odd选或者不选.
给一个字符串, 可以替换k个字符, 求替换后最长的reapting character. 这题有点难度, 需要双指针滑窗, 当找到满足的后, start应该++.
给一个字符串, 找到所有可能的回文子字符串的个数. 这题还是很巧妙的, 利用回文的性质, 就是奇数对称和偶数对称两种回文, 然后搜索, couting一下即可
最长公共子序列, 这题就是dp. dp[i][j]表示在第一个string的i位和第二个string的j位的最长公共子序列. dp[i][j] = dp[i – 1][j – 1] when A[i] == B[j], otherwise dp[i][j] = max(dp[i][j – 1], dp[i – 1][j])