LeetCode刷题日记
文章平均质量分 91
每道题所涉及的算法值得思考
宇文智
兵贵拙速
展开
-
Google面试题:模拟String类中的trim方法以及获取两个字符串中最大相同子串
/*获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef ";str2 = "cvhellobnm"提示:将短的那个串进行长度依次递减的子串与较长的串比较。*/public static void main3(String[] args) { String str1 = "abcwerthelloyuiodef"; // 10 -> 9 (c-n,v-m) -> 8(c-b,v-n,h-m) -> 7(c-o,v-b,h-n原创 2020-07-17 21:27:09 · 184 阅读 · 0 评论 -
字符串中涉及到的二分查找和倒序算法
package com.yuwenzhi;/** * 数组反转 * * @author 宇文智 * @create 2020-06-30 9:57 */public class ArrayReverse { //数组序列反转 public void arrReverse(int[] arr) { for (int i = 0, j = arr.length - 1; i < j; i++, j--) { int temp = a.原创 2020-07-28 19:44:47 · 257 阅读 · 0 评论 -
给定一个字符串, 统计每个字符出现的次数
@Test public void work1() { String string = "给定一个字符串, 统计每个字符出现的次数,asldfjasldkfjalksdfjlkasjdf39847298374289734982734982734alsdjflkasjflkajsdf给定一个字符串, 统计每个字符出现的次数"; Map<Character, Integer> map = new HashMap<>(); fo...原创 2020-07-28 19:28:39 · 4349 阅读 · 0 评论 -
用Java代码实现链表和二叉树
链表class Link { private class Node { Object value; // 数据域 Node next; // 指针域 public Node(Object value) { this.value = value; } } private Node head; private Node tail; private int size;原创 2020-07-17 21:29:52 · 446 阅读 · 0 评论 -
LeetCode日记:字符串中的查找与替换的解题思想
难度:中等对于某些字符串 S,我们将执行一些替换操作,用新的字母组替换原有的字母组(不一定大小相同)。每个替换操作具有 3 个参数:起始索引 i,源字 x 和目标字 y。规则是如果 x 从原始字符串 S 中的位置 i 开始,那么我们将用 y 替换出现的 x。如果没有,我们什么都不做。举个例子,如果我们有 S= “abcd” 并且我们有一些替换操作 i = 2,x = “cd”,y = “ffff”,那么因为 “cd” 从原始字符串 S 中的位置 2 开始,我们将用“ffff” 替换它。再..原创 2020-07-14 21:05:29 · 264 阅读 · 0 评论 -
数组中三种排序算法(快速,冒泡,选择)
快速排序的思想:排序思想: 从数列中挑出一个元素,称为"基准"(pivot), 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。 递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会结束,因为在每次的迭代(iteration原创 2020-07-05 11:02:46 · 422 阅读 · 2 评论