
algorithm
zhang13pro
能一句话解决的问题就不要用十句话
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode-989 数组形式的整数加法
首先很容易想到类型转换硬解,但是 parseInt API 对于特别大的数转换会出现不准确的情况。还是老老实实参考官解吧。var addToArrayForm = function (num, k) { const res = []; let sum = 0; for (let i = num.length - 1; i >= 0; i--) { sum = num[i] + (k % 10); k = Math.floor(k / 10); if (sum原创 2021-10-10 11:42:34 · 179 阅读 · 0 评论 -
怎样删除数组中重复元素
有序数组题目来源LeetCode#26删除排序数组中的重复项暴力解var removeDuplicates = function(nums) { for(let i = 0;i < nums.length; i++){ if(nums[i] == nums[i+1]){ nums.splice(i,1) i-- } } return nums.length}思路很简单,循环找到重复元素删除就好了。注意删除后index要减一。双指针解v原创 2020-09-15 23:07:25 · 3677 阅读 · 1 评论 -
冒泡排序的原理与实现
思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前向后移动,就像水底浮向水面的泡泡,故称冒泡排序。实现:for(int i = 0; i < arr.length - 1; i++){ for(int j = 0; j < arr.length - 1 - i; j++){ ...原创 2019-12-08 23:48:30 · 299 阅读 · 0 评论 -
选择排序的原理与实现
介绍:选择排序属于内部排序,从欲排序的数据中,按指定的规则选出某一元素,再按规定交换位置后达到排序目的。思想:第一次从arr[0]~arr[n-1]中选择(通过遍历)最小值与arr[0]交换,第二次从arr[1]~arr[n-1]最小值与arr[1]交换.....第 i 次从arr[i-1]~arr[n-1]最小值与arr[i-1]交换....,第 n-1 次从arr[n-2]~arr[n...原创 2019-12-01 21:37:59 · 444 阅读 · 0 评论 -
插入排序的原理与实现
介绍:插入排序属于内部排序法,对于欲排序的元素以插入的方式寻找该元素的位置 达到排序的目的。思想:相信大家都玩过扑克牌,开始时手里没有牌,我们需要从无序的牌堆里摸牌并排序。类似的:把 n 个待排序的元素(牌)看成一个有序表(手里牌)和一个无序表(牌堆),开始时有序表只包含一个元素,无序表中包含 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的大小与有序表中的元素从右向左依次进行比...原创 2019-12-01 16:53:05 · 445 阅读 · 0 评论 -
单链表的反转
关于单链表的实现 请参考blog /* * @param herd 链表的头节点 * 将链表反转 * */ public static void reverseList(HeroNode head){ if (head.next == null || head.next.next == null) ret...原创 2019-11-26 22:42:08 · 127 阅读 · 0 评论 -
查找单链表的倒数第k个结点
关于单链表的实现 请参考blog /* * @param herd 链表的头节点 * @param index 倒数的索引 * @return 返回对应节点 * 查找单链表中的倒数第K个节点 * */ public static HeroNode findLastIndexNode(HeroNode head,int inde...原创 2019-11-26 22:34:08 · 232 阅读 · 0 评论 -
求单链表有效节点的个数
关于单链表的实现 请参考blog /* * @param herd 链表的头节点 * @return 返回有效节点的个数 * */ public static int getLength(HeroNode head){ if (head.next == null) return 0; int...原创 2019-11-26 22:33:47 · 506 阅读 · 0 评论 -
单向链表的实现
定义节点数据结构class HeroNode{ public int no; public String name; public String nickName; public HeroNode next; //指向下一个node 默认为null public HeroNode(int no,String name,String nickName){...原创 2019-11-26 22:24:43 · 188 阅读 · 0 评论 -
算法中的函数概论
assert()函数:assert宏的原型定义在<cassert>中,其作用是如果它的条件返回错误,则终止程序执行。#include <cassert>void assert( int expression );swap()函数:实现变量间的交换template<typename T>void selectionSort(T arr[],in...原创 2018-11-16 16:29:59 · 255 阅读 · 0 评论