算法-java
华山派副掌门人
专注于软件
展开
-
子字符串在给定字符串中首次出现的索引
例如:helloeg llll在helloeg中首次出现是在下标2下面程序实现:/*** 子字符串在给定字符串中首次出现的索引* @param s 给定字符串* @param sub 子字符串* @return 子串首次出现的索引* hellolleg ll*/public static int getFirstIndex(String s, String sub){ int i=0, j = 0; int left=0, right = 0; while(i <原创 2021-12-30 19:23:51 · 285 阅读 · 0 评论 -
TopN问题
1. 给定一组数,求最大的3个数public static void getTopMaxN(int [] a){ for (int i = a.length-1; i >0; i--) { for (int j = 0; j < i; j++) { if(a[i]<a[j]){ int tmp = a[i]; a[i] = a[j]; a[j]原创 2021-12-30 19:05:00 · 421 阅读 · 0 评论 -
leetcode最长公共前缀
归并的解法题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,”flow”,”flight”] 输出: “fl” 示例 2:输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。 说明:所有输入只包含小写字母 a-z 。在网上看到好多人的做...原创 2018-08-23 17:39:19 · 203 阅读 · 0 评论 -
Java实现归并排序-有图有真相
归并排序1、原理归并排序是一种概念上最简单的排序算法,与快速排序一样,归并排序也是基于分治法的。归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。2、复杂度归并排序是一种稳定的排序算法,归并排序的主要问题在于它需要一个与待排序数组一样大的辅助数组空间。由于归并排序每次划分时两个子序列的长度基本一...原创 2018-08-12 23:47:08 · 55343 阅读 · 34 评论 -
剑指offer之二叉搜索树与双向链表
将二叉搜索树转为排序的双向链表原题:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/* * 递归方法: * 由于题目要求排序的双向列表,所以首先将二叉搜索树中序遍历,这里采用一个队列来存放要排序的节点,每访问一个节点将其 * 入队,最后全部入队后队列里面是排好序的节点,队首是值最小的节点。然后开始出队,每出队一个元素...原创 2018-08-10 22:53:22 · 205 阅读 · 1 评论 -
工匠金条问题
一栋房子需要一个工匠七天建成,这个工匠的工钱是一份金条,假如现在你需要盖一栋房子,而你只有一根完整的金条,怎么能把金条分三份的情况下每天都付给工匠工资,最后一天刚好付完? 将金条分成1/7、2/7、4/7的三份,下面以1、2、4分别来代替每份金条。 ...原创 2018-08-14 10:47:56 · 678 阅读 · 0 评论 -
动态规划0-1背包(java语言)
0-1背包问题 输入: 第一行 c(背包容量) n(物品数) 第二行:重量数组[]w 第三行:价值数组[]v输出:最大价值input1 20 5 6 4 8 8 4 8 4 8 10 2output1 22input2 10 5 3 5 6 3 2 6 3 4 2 2 output2 11input3 10 5 2 2 6 5 4 6 3 5 4 6outp原创 2017-12-05 20:07:46 · 267 阅读 · 0 评论 -
最小生成树之Prim算法-顶点的归并
import java.util.ArrayList;import java.util.Scanner;/*样例输入4 41 2 12 3 42 4 23 4 3样例输出6样例输入6 91 2 12 4 114 6 36 5 45 3 133 1 22 3 63 4 94 5 7样例输出19*/public class Main{ pub...原创 2017-12-05 19:07:25 · 579 阅读 · 0 评论 -
求字符串中出现次数最多的字符
/** 一个字符串中可能包含a~z中多个字符串,并且可能会有重复,如 String data =”abcdaaa”, 这道字符串出现次数醉倒的字母就是a,出现了4次。现在用户输入一个字符串,我们需要求出出现次数最多的字母, 并且求出次数,如果存在字母中出现最多的次数不唯一,但所有出现次数最多的字母及次数都要打印出来。 输入:输入是一行字符串,就是我们所需统计的字符串,例如我们输入 “abca原创 2017-09-20 19:27:21 · 1567 阅读 · 0 评论