![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
奔跑哥
stay foolish, stay hungry.
展开
-
淘宝 校园招聘题目
n是一个整数 若是奇数 就把n加一或者减一 若n是偶数则除以2,求最短步骤实现把n变成1分析:f(2k) = f(k) + 1;f(2k + 1) = min(f(2k + 2),f(2k)) + 1 = min(f(k+1) +1,f(k) + 1) + 1 = min(f(k),f(k+1)) + 2f(1) =原创 2008-10-13 21:31:00 · 880 阅读 · 0 评论 -
python 二叉排序树
#! /usr/bin/env pythonclass BTNode: def __init__(self, data, left, right): self.data = data self.left = left self.right = rightclass BTree: def __init__(self, root原创 2013-04-24 00:28:38 · 2167 阅读 · 0 评论 -
删除单链表中重复的元素
今天同学突然让我帮他写个删除单链表中重复的元素这个程序,觉得很简单,就停下工作,写了一下。觉得在时间上,空间上都比较优化。 整体思路就是 遍历单链表,然后在判断当前节点是否在已访问的节点集合中,如果不在,说明该元素不重复,则将其插入到访问节点集合中,然后继续比较下一个节点,如果在其中,说明是重复出现,则从单链表中删除当前节点,然后继续比较下一个。 这里用了c++标准库中的se原创 2009-11-09 16:53:00 · 16557 阅读 · 7 评论 -
查找单链表中倒数第k个元素
题目表述: 设计一个算法,找出一个无环的单链表里面倒数第k个元素,速度要快。 算法实现: 实现中的注释已经解释了算法的大概思想。 struct node{ int key; node* next;};typedef node* List;int findLastKthElement(List list, int k){原创 2009-09-09 11:10:00 · 4048 阅读 · 0 评论 -
判断二叉树相似
描述: 若已知两棵二叉树B1和B2皆为空,或者皆不空且B1的左、右子树和B2的左、右子树分别相似,则称二叉树B1和B2相似。试编写算法,判别给定两棵二叉树是否相似。 算法设计: 首先定义 如果相似则返回true,否则返回false。1)if (B1 == NULL && B2 == NULL) 则 like(B1,B2) = true。2)if (B1,B2中有原创 2009-08-31 14:57:00 · 6613 阅读 · 0 评论 -
合并两个有序单链表
struct node{ int data; node* next;};typedef node* List;List mergeSortedLinkList(List &list1, List &list2){ if (list1 == NULL) { return list2; } if (list2 == NULL) { return原创 2009-08-21 07:51:00 · 1587 阅读 · 6 评论 -
在两个有序链表中查找第K大元素。
这是一次面试的时候,别人问我的,当时回答的不太好。 题目描述: 即在两个有序链表中查找第k大的元素,相等的元素做一个元素处理。 {1,3,5}, {2,4,6},这是简单的情况,查找第2大的元素则是 2。 {1,3, 3,3, 5},{2,3,3,4,6},稍微复杂,查找第3大元素则是3,第4大元素 则是4. 解答: 其实我们可以借鉴合并有序链表的方原创 2009-08-21 15:07:00 · 2408 阅读 · 0 评论 -
求两个节点的最近公共祖先节点
import java.util.Scanner;/** * 1330 Nearest Common Ancestors * Time Limit: 1000MS Memory Limit: 10000K * Total Submissions: 4632 Accepted: 2438 * @author zhtsuc * */public class原创 2009-08-20 22:38:00 · 1940 阅读 · 0 评论 -
单链表逆转
void inverseLinkList(List &head){ if (head == NULL || head->next == NULL) { return; } List p = head->next; List q = head; head->next = NULL; while(p) { List t = p->next; p->原创 2009-08-20 22:19:00 · 726 阅读 · 0 评论 -
二叉查找树
#include "stdafx.h" #include using namespace std;templatetypename object>class less{public: bool operator()(object lhs,object rhs) { return lhs }};tem原创 2008-10-15 23:15:00 · 990 阅读 · 0 评论 -
Linked List Cycle
Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using extra space.https://oj.leetcode.com/problems/linked-list-cycle/# Definition for singly-linke原创 2015-01-15 23:54:34 · 523 阅读 · 0 评论