上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 题目要求s需要是t的子序列,子序列的定义是t中删除一些元素能够与s保持一致。 类似的题目有求2个字符串的最长公共子序列,经典的DP题。 不过本题我们可以偷懒使用双指针来处理,可以把题目简化为 s中的每一个字符是否都能在t中找到对应 时间O(m+n)(m、n分别为字符串s和t的长度),空间O(1) 1 阅读全文
posted @ 2021-05-08 11:52 jchen104 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 题目要求替换掉全部的?字符,需要考虑到特殊字符出现在 头尾的边界情况。遍历字符串的所有元素,针对特殊字符,我们获取 当前位置的前后一个元素,然后从a开始递推,得到不与前后元素 相同的第一个元素即可。 1 public String modifyString(String s) { 2 char[] 阅读全文
posted @ 2021-05-08 11:36 jchen104 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 方案一、 使用BFS或者DFS遍历每个元素,可直接获得结果 1 public int closestValue(TreeNode root, double target) { 2 int tag=root.val; 3 double res= Math.abs(root.val-target); 4 阅读全文
posted @ 2021-05-08 11:03 jchen104 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 拿到题目想到了以前学过的博弈论,这里是比较简化的,对于本题,我们可以把 不同情况下先手的输赢结果列出来看。参考如下分析,我们可以得知, 当 N = 3N=3 的时候,当前做出选择的人可以拿掉最后一块石头,获得胜利;然后我们逐层向上分析,当 N = 4N=4 的时候,无论当前做出哪一种选择,对方都会赢 阅读全文
posted @ 2021-05-07 09:47 jchen104 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 双指针+递归来处理 题目要求只删除一个元素,我们可以使用双指针一次比较头尾字符,遇到 不一致的字符做删除操作,这里就出现了2种方案,删除左侧字符还是右侧字符 于是我们递归来处理这2种情况。同时使用全局变量记录删除元素数,当大于1时 即可判定为false 时间O(n),空间O(1)(注意,这里虽然存在 阅读全文
posted @ 2021-05-06 09:57 jchen104 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 利用快慢指针来处理 时间O(n),空间O(1) 1 public ListNode middleNode(ListNode head) { 2 if(head==null || head.next==null) return head; 3 ListNode slow=head,fast=head. 阅读全文
posted @ 2021-05-06 09:09 jchen104 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 使用DFS求解 时间O(n),空间O(h)(h为整棵树的深度) 1 class Solution { 2 int res=0; 3 public int diameterOfBinaryTree(TreeNode root) { 4 def(root); 5 return res; 6 } 7 8 阅读全文
posted @ 2021-05-05 17:07 jchen104 阅读(25) 评论(0) 推荐(0) 编辑
摘要: BFS解,时间O(n^2),空间O(n^2) 1 public List<String> binaryTreePaths(TreeNode root) { 2 List<String> paths = new ArrayList<String>(); 3 if(root==null) return 阅读全文
posted @ 2021-04-28 14:35 jchen104 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 参考 268. 丢失的数字 ,题目要求2边的和相同,我们可以首计算出总的和, 然后再遍历一遍,计算出已扫描过的区间和,再与两数相减的和比较即可。 时间O(n),空间O(1) 1 public int pivotIndex(int[] nums) { 2 long sum=0; 3 for(int n 阅读全文
posted @ 2021-04-28 14:30 jchen104 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 第一反应是用Map建立哈希映射来比对对应关系,知道看到大佬的题解 根据题意,字符串中相同的字符必然对应同一个映射 时间O(n)(这里的n其实并不准确,因为indexOf内部是使用的暴力的方法去查找),空间O(1) 1 public boolean isIsomorphic(String s, Str 阅读全文
posted @ 2021-04-27 10:42 jchen104 阅读(33) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页