
算法入入门(杂)
算法入入门(杂)
Chill_Lyn_
进化成更好的人。
展开
-
算法_不使用第三变量实现两数交换
public static void main(String[] args){ int a=60; int b=40; a=a+b; //100 b=a-b; //60 a=a-b; //40}原创 2020-05-19 11:11:57 · 210 阅读 · 0 评论 -
Java_写一段程序输出1-1000所有数字,不能使用if或循环语句
递归+switchclass Untitled { public static void main(String[] args) { print(1); } public static void print(int num){ System.out.println(num); switch (num){ case 1000: return; default:...原创 2019-12-18 22:18:33 · 557 阅读 · 0 评论 -
Java_输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
package t20;import java.util.Arrays;//输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组.public class Test { public static void main(String[] args) { int[] arr= {1,2,3,5,4}; System.out.println(Arrays.toStri...原创 2019-11-13 22:39:38 · 1043 阅读 · 0 评论 -
Java_古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
package t1;/** * 本质是斐波那契数列 * * */public class Test { /** * * @param month * @return 兔子只数 */ public static int rabbits(int month) { return rabbit(month)*2; } /** * * @param m...原创 2019-11-11 18:44:35 · 921 阅读 · 0 评论 -
Java_随机产生20个不重复的小写字母并且排序
package t2;import java.util.Set;import java.util.TreeSet; public class Test { public static Set<Character> randomChar(int count){ Set<Character> charSet=new TreeSet<Character&g...原创 2019-11-10 22:32:39 · 680 阅读 · 0 评论 -
Java_用最优方法计算2×17
2×17=2×16+2=25 +2=2<<4+2=34原创 2019-10-22 22:08:02 · 455 阅读 · 0 评论 -
Java_从1到19共19个数,打印出利用这19个整数任意多个相加等于20所以可能性,每个数字在同一个算式中只出现一次.
package sum1920;public class Sum1920 { public static void main(String[] args) { sum1920(); } //从1到19共19个数,打印出利用这19个整数任意多个相加等于20所以可能性,每个数字在同一个算式中只出现一次. public static void sum1920() { //两数之和 ...原创 2019-10-20 21:48:28 · 598 阅读 · 0 评论 -
Java_将字符串中所有的old part替换为new part
package replaceTest;public class Replace { //将字符串中所有的old part替换为new part /* * 遍历字符串, * 判断当前位是否以old part开始, * 如果不是,将当前位append StringBuilder中 * 如果是,则将new part append StringBuilder中,遍历索引i跳过ol...原创 2019-10-20 17:48:16 · 409 阅读 · 0 评论 -
Java_定义两个变量a和b,不使用第三个变量,使两个值交换
public class Test{ public static void main(String[] args) { swap(5,6); } public static void swap(int a,int b) { System.out.println(a+" "+b); a+=b; b=a-b; a=a-b; System.out.println(a+"...原创 2019-10-20 17:46:39 · 1115 阅读 · 0 评论 -
Java_如何移动一个数,使62-63=1成立
∵ 64-63=1;26 =64;∴ 将62移动为26 即实现。原创 2019-10-20 17:41:28 · 284 阅读 · 0 评论 -
Java_用4 个0,用你所知道的数学方法计算出24
(0!+0!+0!+0!)!=24原创 2019-10-20 17:42:40 · 232 阅读 · 0 评论 -
Java_如果系统要使用超大整数(超过long长度范围)设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算
package overLongNum;/* * 如果系统要使用超大整数(超过long长度范围), * 请你设计一个数据结构来存储这种超大型数字 * 以及设计一种算法来实现超大整数加法运算) * * 思路: * 用字符串来存储超大整数 * 首先将两个数的位数用0补齐 * 然后遍历相加,每位数和大于10,进位1,该位为和-10 * 如果sum<10,进位0,该位为sum...原创 2019-10-14 19:05:42 · 1628 阅读 · 1 评论 -
Java_删除最外层括号(removeOuterParentheses)
题目思路通过遍历计数“(”与“)”出现的次数,当两者出现相同次数时,即为一个原语。class Solution { public String removeOuterParentheses(String S) { StringBuilder sb=new StringBuilder(); int count=0; int star...原创 2019-10-04 09:28:26 · 787 阅读 · 0 评论 -
Java_转换成小写字母(toLowerCase)
题目class Solution { public String toLowerCase(String str) { StringBuilder sb=new StringBuilder(); int temp=0; for(int i=0;i<str.length();i++) { if(str.charAt(i)>='A'&&...原创 2019-10-04 10:01:24 · 1054 阅读 · 1 评论 -
Java_唯一摩尔斯密码词(uniqueMorseRepresentations)
题目思路//创建morse数组,morseWords数组//遍历words数组,遍历字符,与Morse匹配,StringBuilder拼接,存入morseWords数组//遍历morseWords数组,与该元素之前元素对比,如果不重复,统计出现次数+1class Solution { public int uniqueMorseRepresentations(String[...原创 2019-10-04 10:51:22 · 195 阅读 · 0 评论 -
Java_翻转图像(FlipAndInvertImage)
题目思路//遍历数组,每个元素数组逆序并与1做^运算class Solution { public int[][] flipAndInvertImage(int[][] A) { for(int i=0;i<A.length;i++) { reverseSort(A[i]); } return A; } private int[...原创 2019-10-04 16:48:30 · 287 阅读 · 0 评论 -
Java_汉明距离(Hamming Distance)
题目思路//两个数首先做^运算//得到的结果转换为二进制数,遍历统计1的次数class Solution { public int hammingDistance(int x, int y) { int hmNum=x^y; String hmNum10=parseTo01(hmNum); int count=0; ...原创 2019-10-04 17:19:27 · 625 阅读 · 0 评论 -
Java_机器人能否返回原点(JudgeCircle)
题目思路//创建一个双元素一位数组表示坐标//遍历字符串,数组元素值对应做+1或-1计算//最终如果数组元素均为0,则表示回到原点class Solution { public boolean judgeCircle(String moves) { int[] coor= {0,0}; for(int i=0;i<moves.lengt...原创 2019-10-04 18:05:40 · 236 阅读 · 0 评论 -
Java_IP地址无效化(defangIPAddr)
题目class Solution { public String defangIPaddr(String address) { String[] str=address.split("\\."); StringBuilder sb=new StringBuilder(); for(String s:str) { sb.append(s).append("[...原创 2019-10-03 21:25:14 · 267 阅读 · 0 评论 -
Java_宝石与石头(numJewelsInStones)
题目class Solution { public int numJewelsInStones(String J, String S) { int count=0; for(int i=0;i<J.length();i++) { for(int j=0;j<S.length();j++) { if(J.charAt(i)==S.charAt...原创 2019-10-03 21:03:28 · 229 阅读 · 0 评论 -
Java_猜数字(guessNumbers)
题目class Solution { public int game(int[] guess, int[] answer) { int count=0; for(int i=0;i<3;i++) { if(guess[i]==answer[i]) { count++; } }...原创 2019-10-03 20:35:49 · 266 阅读 · 0 评论 -
Java_最大三角形面积(largestTriangleArea)
题目思路三角形面积坐标公式:S = |(x1 · y2 - x2 · y1) + (x2 · y3 - x3 · y2) + (x3 · y1 - x1 · y3)|/ 2class Solution { public double largestTriangleArea(int[][] points) { double area=0; dou...原创 2019-10-03 20:12:17 · 377 阅读 · 0 评论 -
Java_图片平滑器(ImageSmoother)
题目class Solution { public int[][] imageSmoother(int[][] ori) { //行数 int rows=ori.length; //列数 int cols=ori[0].length; //新数组 int[][] newArr=new int[rows][cols]; //只有一个元素的情况 ...原创 2019-10-03 19:15:55 · 534 阅读 · 0 评论 -
Java_爬楼梯(climbingStairs)
题目分析1阶:1种方法2阶:2种方法3阶:3种方法4阶:5种方法。。。其实就是斐波那契数列f(n)=f(n-1)+f(n-2)package simple;public class ClimbingStairs { public int climbingStairs(int n) { if (n == 0) { return 0; } if (n =...原创 2019-10-03 16:43:22 · 215 阅读 · 0 评论 -
Java_ 求任意位斐波那契数(Fibonacci:1,1,2,3,5,8,13...)//循环|递归
方法1 循环迭代import java.util.Scanner;/* * 求任意一位斐波那契数,循环迭代方法 *@author Chill_Lyn * * */public class Fibonacci1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in...原创 2019-07-07 17:54:13 · 843 阅读 · 0 评论 -
Java_除数博弈(divisorGame)
背景思路学习了大佬的思路,分析出游戏的本质:1.最后结局前的选择一定是面对2,谁选择了1谁就赢。2.两个人都是以最优状态进行游戏,想要对方给自己抛过来2,那一定要尽可能抛给对方一个奇数。因为偶数减去一个约数结果可能为奇数也可能为偶数,然而奇数减去一个约数一定是偶数。3.抛给对方奇数最理想的办法就是偶数-1。4.因为面对奇数的一方抛给对方的永远是偶数,所以如果N为偶数,Alice始终...原创 2019-10-03 13:39:40 · 254 阅读 · 0 评论 -
Java_求众数(majorityElement)
描述package simple;public class majorityElement { public static void main(String[] args) { int[] num1 = { 3, 2, 3 }; int[] num2 = { 2, 1, 1, 1, 2, 2, 2 }; int[] num3 = { 1 }; System.out.pr...原创 2019-10-03 10:39:12 · 719 阅读 · 0 评论 -
Java_控制台实现可视化日历
方法一:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Scanner;public class V...原创 2019-07-17 21:22:35 · 205 阅读 · 0 评论 -
Java_高度检查器(HeightChecker)
题目思路//本质是与升序排序对比有多少元素不在应在的位置上//sort排序数组得到新数组//同时遍历新旧数组,相同index,不同value,count++;class Solution { public int heightChecker(int[] heights) { int count=0; int[] copyHeights=new...原创 2019-10-05 12:18:21 · 214 阅读 · 0 评论 -
Java_有序数组的平方(SortedSquares)
题目思路//遍历数组求平方//sort排序class Solution { public int[] sortedSquares(int[] A) { for(int i=0;i<A.length;i++) { A[i]*=A[i]; } Arrays.sort(A); return A; ...原创 2019-10-05 12:26:33 · 705 阅读 · 0 评论 -
Java_增减字符串匹配(DI StringMatch)
题目思路//本质是,提取I是首项为0的自然升序数列,提取D是首项为字符串长度-1的自然降序数列//细节需要注意://首项如果为I,数组首元素为0.否则数组首元素为S.length();//末项如果为I,则数组末元素顺势升序,否则顺势降序。class Solution { public int[] diStringMatch(String S) { int[...原创 2019-10-05 12:54:32 · 296 阅读 · 0 评论 -
Java_求1+2!+3!+...+20!
package cn.myAlgorithm;//求1+2!+3!+...+20!的和class SumOfFactorial { public static void main(String[] args) { long sum = 0; int count = 20; for (int i = 1; i <= count; i++) { long factor...原创 2019-08-02 22:17:33 · 1126 阅读 · 0 评论 -
Java_转置矩阵(Transpose)
题目class Solution { public int[][] transpose(int[][] A) { int[][] B=new int[A[0].length][A.length]; for(int i=0;i<B.length;i++) { for(int j=0;j<B[i].length;j++) { ...原创 2019-10-08 11:29:58 · 1063 阅读 · 0 评论 -
Java_重复N次的元素(RepeatedNTimes)
题目思路//找到重复出现的元素即可class Solution { public int repeatedNTimes(int[] A) { for(int i=0;i<A.length-1;i++) { for(int j=i+1;j<A.length;j++) { if(A[i]==A[j]) { ...原创 2019-10-08 11:15:13 · 367 阅读 · 0 评论 -
Java_两个数组的交集(Intersection)
题目思路//元素唯一 不考虑顺序是在提示用set了//retainAll是set取交集的好方法class Solution { public int[] intersection(int[] nums1, int[] nums2) { HashSet<Integer> hs1=new HashSet<Integer>(); Hash...原创 2019-10-08 10:19:02 · 1089 阅读 · 0 评论 -
Java_最小差值I(SmallestRangeI)
题目思路//得到A的极值差//如果极值差小于等于2K,return 0;//否则 return 极值差-2K;//注意://因为只涉及极值,所以尽量不要将整个数组排序,效率很低class Solution { public int smallestRangeI(int[] A, int K) { int max=A[0]; int min...原创 2019-10-06 22:29:19 · 268 阅读 · 0 评论 -
Java_删列造序(MinDeletionSize)
题目思路//将不是升序的列数记下来class Solution { public int minDeletionSize(String[] A) { int count=0; for(int i=0;i<A[0].length();i++) { for(int j=0;j<A.length-1;j++) { ...原创 2019-10-06 22:03:50 · 178 阅读 · 0 评论 -
Java_键盘行(FindWords)
题目class Solution { public String[] findWords(String[] words) { int index=0; for(int i=0;i<words.length;i++) { if(findWord(words[i])) { ++index; } ...原创 2019-10-06 21:36:45 · 221 阅读 · 0 评论 -
Java_数组拆分I(ArrayPairSum)
题目思路//先将数组升序排列,然后两两一组//最小值和的最大值即为index为偶数元素之和class Solution { public int arrayPairSum(int[] nums) { int sum=0; Arrays.sort(nums); for(int i=0;i<nums.length;i+=2) ...原创 2019-10-06 19:35:20 · 462 阅读 · 0 评论 -
Java_按奇偶排序数组(SortArrayByParity)
题目思路//偶数从头排,奇数从尾排class Solution { public int[] sortArrayByParity(int[] A) { int[] arr=new int[A.length]; int start=0; int end=A.length-1; for(int i=0;i<A.l...原创 2019-10-05 21:03:03 · 498 阅读 · 0 评论