
算法
春来桃花开
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【深度优先遍历DFS生成嵌套返回值】
深度优先遍历原创 2024-07-02 10:38:24 · 235 阅读 · 0 评论 -
【算法】----- 回溯法解决电话号码排布
如题:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]class Solution { public List<String> letterCombinations(String digits) { List&l转载 2021-04-06 19:25:05 · 267 阅读 · 0 评论 -
【算法】---- dfs列举子集问题
给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]方法一:class Solution { List<Integer> t = new ArrayList<Integer>(); List<List<Integer>>原创 2021-04-01 09:18:26 · 293 阅读 · 0 评论 -
【算法】----DFS(深度优先遍历)解决小岛个数问题
问题:Given a 2d grid map of '1’s (land) and '0’s (water), count the number of islands. An island is surrounded by waterand is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by w.原创 2021-03-01 20:40:16 · 594 阅读 · 0 评论 -
【算法】-- 【二叉树的实现、层序遍历二叉树、已知先序中序遍历二叉树,求后序遍历二叉树、求二叉树中结点的最大距离】
01 如何实现二叉树首先定义树的结点public class Node { public int data; public Node left; public Node right; public Node (int data){ this.data=data; this.left=null; this.right...原创 2019-10-06 11:03:12 · 377 阅读 · 0 评论 -
【算法】-- 【实现字符串的反转、判断两个字符串是否由相同的字符组成、删除重复的字符、统计字符串由多少个单词、按要求打印数组排列情况、输出字符串所有组合】
01 如何实现字符串的反转例如:“I love you"反转后"you love I”思路:第一次对整个字符串中的字符进行反转,然后对每个单词进行反转public void swap(char [] cArr,int begin,int end){ while (begin<end){ char tmp=cArr[begin]; ...原创 2019-10-05 19:02:32 · 728 阅读 · 0 评论 -
【算法】-- 【计算两个有序整型数组的交集、判断一个数组中数值是否连续相邻、求解数组中反序对的个数、如何求解最小三元组距离】
01 如何计算两个有序整型数组的交集问题描述:假设两个含有n个元素的有序整型数组a和b,其中a1={1,5,9,10,12,13}, a2={2,3,5,10,15},那么他们的交集{5,10}方法:二路归并法 public static ArrayList<Integer> mixed(int a1[],int a2[]){ ArrayList<Integ...原创 2019-10-05 11:37:14 · 562 阅读 · 0 评论 -
【算法】-- 【求数对之差的最大值、求绝对值最小的数、求两个元素的最小距离、求指定数字在数组中第一次出现的位置、对数组的两个子有序段进行合并】
01 如何求数对之差的最大值方法一:蛮力法首先遍历数组,找到所有可能的差值,其次从所有差值中找出最大值。public static int getMax(int[] a){ int n=a.length; int max=Integer.MIN_VALUE; for (int i=0;i<n;i++){ for (...原创 2019-10-04 23:43:38 · 1137 阅读 · 1 评论 -
【算法】-- 【数组循环右移k位,数组第k个最小的值,数组中只出现一次的元素,数组唯一重复的元素,用递归法求数组的最大元素】
01 如何把一个数组循环右移k位例如:数组{1,2,3,4,5,6,7,8,9}右移两位第一步 逆序数组子序列 1234567,数组变为765432189第二步 逆序列数组子序列89,数组变为765432198第三步 全部逆序,数组变为891234567/** * 交换数组 * @param arr * @param b 开始的下标 * @p...原创 2019-10-04 22:46:57 · 689 阅读 · 0 评论 -
【算法】-- 【寻找数组最小、大值,数组第二大数,最大子数组之和,最多重复的数,等于10的组合】
01 如何寻找数组中的最小值与最大值 static int Max; static int Min; public static void getMaxAndMin(int arr[]){ Max =arr[0]; Min =arr[0]; int len =arr.length; for (int i=0;i...原创 2019-10-04 21:00:19 · 712 阅读 · 0 评论 -
【算法】-- 【位运算】
1.如何用位移操作实现乘法运算 public static int powerN(int m,int n){//m乘以2的n次幂 for (int i=0;i<n;i++){ m=m<<1; } return m; } public static void main(String[]...原创 2019-10-03 10:14:11 · 174 阅读 · 0 评论 -
八大排序算法实现及图解
1、冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法步骤:1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。2)对每一对相邻元素作同...原创 2019-09-04 17:23:54 · 636 阅读 · 0 评论 -
【算法】-- 【栈与队列的实现】
1.如何实现栈1.数组实现栈import java.util.Arrays;public class MyStack<E> { private Object[] stack; private int size;//数组中存储元素的个数 public MyStack(){ stack = new Object[10]; //默认初始长度...原创 2019-10-02 16:13:39 · 261 阅读 · 0 评论 -
【算法】-- 【单链表的反转、增删、去重、中间节点、是否有环、有环的第一个节点、是否相交等】
1.定义一个数据类来存储节点信息public class Node { Node next = null; int data; public Node(int data){ this.data=data; }}2.单链表的基本操作public class MyLinkedList { Node head = null; //链表...原创 2019-10-01 23:46:09 · 220 阅读 · 0 评论 -
【算法】-- 【字符串反转】
如何将字符串反转?/** * 二分递归地将后面的字符和前面的字符连接起来。 * * @param s * @return */ public static String reverse1(String s) { int length = s.length(); if (length <= 1) ...原创 2019-09-30 16:00:28 · 215 阅读 · 0 评论 -
【算法】-- 【螺旋矩阵】
今天去智度科技面试,遇到一个算法题,没有答上,可惜了这次机会。从矩阵的左上角出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入1, 2, 3, … , n1,2,3,…,n,便构成了一个螺旋矩阵。2下图是一个n = 4n=4 时的螺旋矩阵。实现算法如下: public static void getLu...原创 2019-09-28 14:45:16 · 1823 阅读 · 0 评论