
算法
花弄影1521
有梦为马,随处可栖
展开
-
算法-最长回文子串
题目描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。例如:输入 “abc1234321ab”, 12返回值:7//最长回文子串public static int getLongestPalindrome(String A, int n) { if (A == null || A.length() <= 1) { return 0; } int maxLen = 0; byte[] arra原创 2020-12-24 20:48:55 · 247 阅读 · 0 评论 -
算法-二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 :8/ 6 10/ \ / 5 7 9 11镜像二叉树:8/ 10 6/ \ / 11 9 7 5//二叉树的镜像public void Mirror(TreeNode root) { if (root == null) { return; } if (root != null) { TreeNode temp = root.left; ro原创 2020-12-20 21:42:54 · 245 阅读 · 0 评论 -
算法-判断回文
题目描述给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。示例1输入:“absba”,返回true示例2输入:“ranko”,返回false示例3输入:“yamatomaya”,返回falsepublic boolean judge (String str) { int len = str.length(); int low = 0; int high = len - 1; boolean b = true;原创 2020-12-14 21:42:52 · 582 阅读 · 0 评论 -
算法-删除有序链表中的重复元素
题目描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→2,返回1→2。给出的链表为1→1→2→3→3,返回1→2→3。//删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次public static ListNode deleteDuplicates (ListNode head) { ListNode node = head; ListNode curr = null; ListNode nex原创 2020-12-11 14:44:35 · 416 阅读 · 0 评论 -
算法-链表反转和链表内指定区间反转
链表反转输入一个链表,反转链表后,输出新链表的表头。例如:输入{1, 2, 3},返回{3, 2, 1}.public static ListNode reverse (ListNode head) { ListNode pre = null, temp = new ListNode(0); while (head != null) { temp = new ListNode(head.val); temp.next = pre; pre = temp; head = head.n原创 2020-12-09 21:40:06 · 247 阅读 · 0 评论 -
算法-大数加法和大数乘法
大数加法以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。(字符串长度不大于100000,保证字符串仅由’0’~'9’这10种字符组成)public static String solve_add(String s, String t) { int len1 = s.length(); int len2 = t.length(); int i = len1 - 1; int j = len2 - 1; int x = 0; int y = 0; int m = 0;原创 2020-12-04 20:51:21 · 509 阅读 · 0 评论 -
算法-两个链表生成相加链表
题目描述假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。public static ListNode addInList (ListNode head1, ListNode head2) { if (head1 == null && head2 != nul原创 2020-11-29 19:59:30 · 137 阅读 · 0 评论