算法
多刷算法,可以增加你的逻辑思维,坚持每天都刷,你会发现不一样的自己!
鲸叫我照顾大海
因为喜欢,所以热爱,保持初心,编程的路很长,我愿意慢慢追随,做一个永不迷路的程序小白!
展开
-
刷算法的第5天
283.移动零难度:简单给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]public class Test10 { public static void main(String[] args) { int[].原创 2022-03-29 10:22:28 · 79 阅读 · 0 评论 -
刷算法的第4天
189.轮转数组难度:中等示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步:..原创 2022-03-27 21:24:20 · 124 阅读 · 0 评论 -
刷算法的第3天
334.反转字符串难度:简单编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]publi..原创 2022-03-27 21:20:57 · 53 阅读 · 0 评论 -
刷算法的第2天
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6].原创 2022-03-21 08:35:04 · 58 阅读 · 0 评论 -
刷算法的第1天
704.二分查找难度:简单给定一个n个元素有序的(升序)整型数组nums 和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回 -1。public class Test06 { public static void main(String[] args) { int[] nums={1,3,5,6,7,9}; //定义一个有序的数组 Test06 t = new Test06(); ...原创 2022-03-20 20:07:09 · 87 阅读 · 0 评论 -
常用的几种算法
1.冒泡排序//冒泡排序/*具体思路: (1) 整个数列分成两部分:前面是无序数列,后面是有序数列 (2) 初始状态下,整个数列都是无序的,有序数列是空 (3) 如果一个数列有n个元素,则至多需要n-1趟循环才能保证数列有序 (4) 每一趟循环可以让无序数列中最大数排到最后,(也就是说有序数列的元素个数增加1) (5) 每一趟循环都从数列的第一个元素开始进行比较,依次比较相邻的两个元素,比较到无序数列的末尾即可(而不是数列的末尾) (6) 如果前一个原创 2022-03-20 19:57:55 · 282 阅读 · 0 评论