![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
笨小孩编程
这个作者很懒,什么都没留下…
展开
-
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。面试题算方法 简单算法 算法面试题
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。首先先到的是二叉树解法1 左右两个指针l/r,在定义一个mid中间值,返回值得位置为最大值2 比较传值与中间值得大小 2.1 如果小右指针移动到中价值位置在减1,返回值为中间值 2.2 如果大于中间值左指针移动导中间位置+1 public static int searchInsert(int[] nums,int targ...原创 2021-03-01 17:39:08 · 606 阅读 · 0 评论 -
实现 strStr() 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 。如果不存在,则返回 -1 面试算法
给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。 public static int strStr1(String haystack, String needle){ int L = needle.length(), n = haystack.length(); if (L == 0) { return 0; ...原创 2021-03-01 11:26:42 · 538 阅读 · 0 评论 -
算法基础 排序算法 排序算法分类
1 排序:按照一定的规律排列的数据常见的排序方法:原创 2021-02-24 10:26:03 · 156 阅读 · 0 评论 -
移除元素 面试题 算法面试题 简单算法 数据结构 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度 LeetCode
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 public int removeElement(int[] nums, int val) { if (nums.length == 0){ return 0; } ...原创 2021-02-18 16:48:47 · 465 阅读 · 0 评论 -
删除排序数组中的重复项 面试题 算法面试题 简单算法 数据结构
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。 public int removeDuplicates(int[] nums) { if (nums.length =原创 2021-02-18 16:11:14 · 69 阅读 · 0 评论 -
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 算法面试题 算法 简单算法 数据结构 算法笔试 java链表算法
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。链表的结构是:链表可分为单向链表和双向链表。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。现在明白什么是链表了 ,存储的是一个值与一个指针指向下一个数据 public ListNodeInt m...原创 2021-02-10 10:10:16 · 2182 阅读 · 0 评论 -
给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串 s ,判断字符串是否有效。 简单算法 算法基础 算法面试题 算法 java算法 java算法面试题 java结算法
给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。根据题目要求,就是要有对应的右括号,‘{[]}’这种也是符合要求的,‘()【】{}’这是符合要求的。也就是说左括号要有相邻的右括号对应就可以。public static boolean isValid(String s) { //这里定义了一个栈,栈是矢量的一个子类,它实现了一个标准的先进后出的.原创 2021-02-09 10:23:53 · 2964 阅读 · 1 评论 -
编写一个函数来查找字符串数组中的最长公共前缀 算法面试题 算法 简单 算法简答题
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。String[] sarr = {"abcd","abcde","abc"};如字符串数组的公共前缀就是“abc”public static String longestCommonPrefix(String[] strs) { String res = ""; //如果长度为0,就没有公共前缀字符串,就返回“” if (strs.leng...原创 2021-02-07 17:58:47 · 928 阅读 · 0 评论 -
整数反转 算法面试题 算法 给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果
给你一个 32 位的有符号整数x,返回x中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1],就返回 0。上代码: public static int reverse(int x){ if(x==0){ return 0; } long res = 0; while (x != 0){ res = res * 10 ...原创 2021-02-05 09:03:05 · 3505 阅读 · 0 评论 -
给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。 算法题。算法面试题,简单算法,回文算法
给你一个整数x,如果x是一个回文整数,返回ture;否则,返回false。回文整数,就是按照从左到右读与从右到左,读出来的是同一个整数例:121 从左到右 为121 ,从右到左也是121这个就是回文整数。分析:这里出现 负数 、0、正数1.负数肯定就不是回文了,false2.0是回文 。true (怎么读都是0)3.正数,有分奇数个整数和偶数个的整数、是否可以除10整除 ,如果可以就返回false ,大于0的数字,0不会出现在开头3.1 比如说123 我们只要...原创 2021-02-04 15:19:14 · 3481 阅读 · 2 评论 -
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度 算法题 ,面试题算法
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。输入: s = "abcabccc"输出: 3 解释: 因为无重复字符的最长子串是 ‘abc’所以其长度为 3。1.创建数组 new int[128] (参考码表)2.解释窗口的滑动第一次循环时,start位置是‘0’第四次循环时 start 滑动到 动一位 为‘1’ 目前子串为‘bca’ 长度还是3第五次循环时start 滑动一位为‘2’ 目前子串为‘cab’ 长度还是3以此循环,就得到 ‘abc’为最长..原创 2021-02-02 14:49:22 · 1178 阅读 · 0 评论 -
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串 public boolean CheckPermutation(String s1, String s2) { if (s1.length() != s2.length()){ return false; } StringBuilder sb = new StringBuilder(s2); for (i.原创 2021-02-01 17:00:42 · 1652 阅读 · 0 评论 -
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
1.实现一个算法,确定一个字符串 s 的所有字符是否全都不同。思路:就是让字符串中的每一个字符与别的字符相互比较方法1:循环套循环按个字符去比较方法2:先定义个集合,把每个字符放到集合中,(如果集合中没有就放入到集合中,如果存在就返回)static boolean isUnique(String s) { boolean eq = false; int num = s.length(); HashMap map = new HashMa原创 2021-02-01 10:14:24 · 1062 阅读 · 0 评论 -
两数之和的算法问题 算法问题 ,算法面试题两数之和, 面试题两数相加
1.这是原题目:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。分析题目:1.提议:就是让你求两个链表对应位,数字相加的结果。(注意:数字相加要考虑进位)2 思路:1)链表是按逆序排列的,可以把两个链表的改正为正序,然后两个数相加之和按逆序的方式插入到新的链表就是对应的结果 ...原创 2021-01-24 23:00:58 · 199 阅读 · 1 评论 -
简单的空间 换时间的一个小列子
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。 public static void main(String[] args) { int [] arr = {2,3,5,6 }; int num = 9; System.out.println(Arrays.t...原创 2021-01-20 23:53:45 · 121 阅读 · 0 评论 -
平衡二叉树 搜索二叉树
1.平衡二叉树:每个树的左树的高度与右树高度绝对小于等于1.图例左边的高度为3,右树为2 绝对值小于等于1,为平衡树2.搜索二叉树:每个树的左树的最大值小于节点值,右树的最小值大于节点值。图例左树的最大3值小于节点6,右树的最小值为7,搜索二叉树。...原创 2021-01-20 22:49:25 · 86 阅读 · 0 评论 -
算法专栏
1 算法的基础概念 地址:https://blog.csdn.net/yu1xue1fei/article/details/1127943952 排序算法 地址:原创 2021-01-18 22:05:48 · 82 阅读 · 0 评论 -
算法基础 了解一些概念
1. 什么是数据结构:就是数据的不同方式。 数组、链表2.是什么算法:就是同一问题不同的解决方法3.说一下数组与链表的区别。为什么数组的查询快,链表的增删改快(这个概念90%都会)数组的结构:数据结构它们是紧密相连的,(arr1)如果需要插入一条数据5在4和3中间 ,首先需要在内存中开辟一个新的空间 (arr2)要比arr1大,然后先把1、4复制到arr2 再把5添加进去再复制3、2 形成一个新的数组,arr指向arr2,这就是数组的添加数据过程。链表的结构:链表的结构是相互..原创 2021-01-18 21:44:10 · 79 阅读 · 0 评论