TypechoJoeTheme

Toasobi的博客

搜索到 47 篇与 的结果 ———
2023-09-17

字符串最大公因子(gcd算法)

字符串最大公因子(gcd算法)
题目:字符串的最大公因子对于字符串 s 和 t,只有在 s = t + ... + t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2 。示例 1:输入:str1 = "ABCABC", str2 = "ABC"输出:"ABC"示例 2:输入:str1 = "ABABAB", str2 = "ABAB"输出:"AB"示例 3:输入:str1 = "LEET", str2 = "CODE"输出:""求最大公因数(字符串也适用,对长度运算就好了),可以使用gcd算法!首先,如果 str1 + str2 === str2 + str1 就意味着有解。我们也很容易想到 str1 + str2 !== str2 + str1 也是无解的充要条件在判断有解的情况下,就可以使用gcd算法了!class Solution { public String gcdOfStrings(String str1, String str2) { i...
2023-09-17

经典例题

0 阅读
0 评论
2023年09月17日
0 阅读
0 评论
2023-09-16

二叉树的右视图(BFS/DFS)

二叉树的右视图(BFS/DFS)
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例 1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]示例 2:输入: [1,null,3]输出: [1,3]示例 3:输入: []输出: []提示:二叉树的节点个数的范围是 [0,100]-100 <= Node.val <= 100 **一、BFS**思路: 利用 BFS 进行层次遍历,记录下每层的最后一个元素。 时间复杂度: O(N)O(N)O(N),每个节点都入队出队了 1 次。 空间复杂度: O(N)O(N)O(N),使用了额外的队列空间。class Solution {     public List<Integer> rightSideView(TreeNode root) {         List<Integer> res = new ArrayList<>();         if (root == null) {             return res;      ...
2023-09-16

经典例题

0 阅读
0 评论
2023年09月16日
0 阅读
0 评论
2023-09-15

Dota2 参议院(队列)

Dota2 参议院(队列)
这道题一开始我想的是拼人头数,所以用的是栈的方式,下面是错误代码public String predictPartyVictory(String senate) { Stack<Character> stack = new Stack<>(); char[] chars = senate.toCharArray(); char head = chars[0]; stack.push(chars[0]); for (int i = 1; i < chars.length; i++) { if(!stack.isEmpty() && stack.peek() != chars[i]){ stack.pop(); }else{ stack.push(chars[i]); } } if(!stac...
2023-09-15

经典例题

0 阅读
0 评论
2023年09月15日
0 阅读
0 评论
2023-09-14

KMP算法--找出字符串中第一个匹配的下标

KMP算法--找出字符串中第一个匹配的下标
这道题需要学习的是KMP算法public int strStr(String haystack, String needle) { if (needle.isEmpty()) return 0; char[] s = haystack.toCharArray(); char[] p = needle.toCharArray(); int m = needle.length(); int n = haystack.length(); int[] next = new int[m]; //构建next数组 next[0] = -1; int i = 0; int j = -1; while(i < m - 1){ if(j == -1 || p[i] == p[j]){ next[++i] = ++j; }else{ ...
2023-09-14

经典例题

0 阅读
0 评论
2023年09月14日
0 阅读
0 评论