
编程基础
BookIdiot
学到老活到老。
展开
-
编程_数组
二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。Java两种思路1.把每一行看成有序递增的数组,利用二分查找,通过遍历每一行得到答案,时间复杂度是nlogn.public class Solution { publ...原创 2018-09-21 13:09:55 · 360 阅读 · 0 评论 -
编程_字符串
替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。Java问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换?问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法) 从前往后替换,后面的字符要不断往后移...原创 2018-09-21 14:20:03 · 336 阅读 · 0 评论 -
编程_链表
从头到尾打印链表输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。Java/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* ...原创 2018-09-22 13:32:24 · 283 阅读 · 0 评论 -
冒泡排序
Bubble Sort,是Java中的经典算法。原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成,其实这个过程就是一个将最大值传递到最后的算法...转载 2018-10-25 16:17:01 · 196 阅读 · 0 评论 -
复杂度
算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间(即寄存器)都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少。时间复杂度(Time Complexity)1:算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好地反映出算法的优劣...转载 2018-10-25 16:33:52 · 558 阅读 · 0 评论