
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
算法是程序员在学习计算机编程开发语言的时候需要重点掌握的一个互联网编程知识点,下面我们就通过案例分析来简单了解一下,软件编程算法基础知识。
1、逆序想到stack;比如445.两数相加II,当然,可以用stack也是可以用List,list有序,因此也是可以当作stack用;
2、要求达到O(n\logn)O(nlogn)的时间复杂度和O(1)O(1)的空间复杂度,时间复杂度是O(n\logn)O(nlogn)的排序算法包括归并排序、堆排序和快速排序(快速排序的差时间复杂度是O(n^2)O(n2)),其中适合链表的排序算法是归并排序。
3、对于链表,有时候需要把头结点加入循环,可以在头结点前面在家一个节点,这样就可以用于判断了;
4、链表常用的操作逻辑,用stack,数组保存节点组成新的队列;用一个新节点来连接原来的节点,这样,即使对原有节点改变了,还是可以返回头结点。熟悉链表的反转,合并等逻辑。
5、关于二叉树,二叉树一般采用递归,一般是递归到后一个的时候,在不断往前,因此你要做好好一个判断到底是返回什么,比如深度的求解等等。
6、二叉树的递归调用其实就是存在一个隐藏的stack。只是大家平时熟悉了递归,没有去细想内部的逻辑。所以如果不采用递归方式来实现,就是得采用stack来维护这个顺序,但是要注意先入后出这个点。
7、如果给你一个数组num1足够空间,前部分已经存在值了,让你把另一个num2的值填到num1中。这种要么新建一个数组,填完后再挪到num1中,另一种是从合并后的长度开始填,这样确保不会覆盖num1前面已有的值。
8、两个字符串找不同,对于字符串可以采用求和,位运算,以及一个数组来记录各个字母出现的个数,以此来找到不同。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。