算法
阳光下的米雪
在校研究生
展开
-
(java)给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。/** * 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 * */public class SearchTarget { public static int searchTarget(int[]原创 2021-10-19 11:25:40 · 1564 阅读 · 0 评论 -
(java---动态规划)给你一个字符串 s,找到 s 中最长的回文子串。
给你一个字符串 s,找到 s 中最长的回文子串。 public static void main(String[] args) { String s = "babad";// String s = "cbbd";// String s = "上海自来水来自海上"; LongestPalindrome l = new LongestPalindrome(); String s1 = l.longestPalindrome(s)原创 2021-07-23 17:21:04 · 647 阅读 · 0 评论 -
(java)斐波那契数列及其改进
斐波那契数列1 1 2 3 5 8 13 21 34 55 …public class FibonacciSequence { public int f(int num){ if(num<=1){ return num; } return f(num-1)+f(num-2); } public static void main(String[] args) { int num =10;原创 2021-07-22 16:40:34 · 202 阅读 · 2 评论 -
(java) 计算n的阶乘
计算n的阶乘public class Factorial { public int factorial(int num){ if(num<=2){ return num; } return num*factorial(num-1); } public static void main(String[] args) {// int num = 10; int num = 5原创 2021-07-22 16:37:47 · 200 阅读 · 0 评论 -
(java)硬币找零:目前有三种硬币面值: 1 2 5 ,现在需要拼出面值为27,所需要的硬币数最小。
硬币找零:目前有三种硬币面值: 1 2 5 ,现在需要拼出面值为27,所需要的硬币数最小。public class CoinChange { //A--- 1 2 5 //M---27 public int coinChange(int[] A,int M){ //最少用多少枚硬币可以拼出27 int[] f = new int[M+1]; //硬币的面值种类数 int n = A.length; /原创 2021-07-22 09:56:48 · 445 阅读 · 0 评论 -
(java)机器人位于 m x n 网格的左上角(下图中标记为“开始”)。 机器人只能在任何时间点向下或向右移动。 机器人正试图到达网格的右下角(下图中标记为“完成”)。有多少可能的唯一路径?
机器人位于 m x n 网格的左上角(下图中标记为“开始”)。 机器人只能在任何时间点向下或向右移动。 机器人正试图到达网格的右下角(下图中标记为“完成”)。有多少可能的唯一路径?public class UniquePaths { public int uniquePaths(int m,int n){ //定义机器人有多少中方式从左上角走到(m-1,n-1) int[][] f = new int[m][n]; //初始值 f[0原创 2021-07-22 09:55:01 · 301 阅读 · 0 评论 -
(java)给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。public class CanJump { public boolean canJump(int[] A) { int n = A.length; boolean[] f = new boolean[n]; f[0] = true; for (int j = 1; j < n; j++) {原创 2021-07-22 09:52:47 · 1651 阅读 · 0 评论 -
(java---暴力解法)给你一个字符串 s,找到 s 中最长的回文子串。
给你一个字符串 s,找到 s 中最长的回文子串public class LongestPalindrome { public String longestPalindrome(String s) { if(s.length()<2){ return s; } int maxLeft = 0; int maxRight = 0; //记录当前左指针位置 int x = 0;原创 2021-07-20 18:38:01 · 517 阅读 · 0 评论 -
(java)给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。public class LengthOfLongestSubstring { public int lengthOfLongestSubstring(String s) { if(s.length()<0 | ("").equals(s)){ return 0; } int length = s.length(); //统计最长不重复原创 2021-07-20 10:11:19 · 3023 阅读 · 0 评论 -
(java)给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数 。
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数 。思路1.合并这两个有序序列,并排序2.判断合并后的有序序列是奇数还是偶数序列3.求相应的中位数public class FindMedianSortedArrays { public double findMedianSortedArrays(int[] nums1, int[] nums2) { //将两个数组合并成一个有序的数组原创 2021-07-20 10:09:21 · 2133 阅读 · 0 评论 -
(java)给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位数字。
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。public class AddTwoNumbers { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { //头结点 ListNode dummyHead = new ListNode(0); ListNode p = l1; ListNode q原创 2021-07-20 10:05:40 · 1879 阅读 · 4 评论 -
(java)给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。public class TwoSum { public int[] twoSum(int[] nums, int target) { if(nums!=null && nums.length!=0){ Map<Integer,Integer> map = new HashMap();原创 2021-07-20 10:02:51 · 2149 阅读 · 0 评论