Jasin Yip

标签 计蒜客 下的文章

包含算法:判断一个矩形是否在圆内的方法

前言

由于最近开发「兔妮妮历险记」,使用或者研究了挺多值得记录及分享的关于图形类的算法,所以打算有时间就整理一下,分享给大家。

个人非常喜欢 CoffeeScript,所以如果需要代码描述的,将会用 CoffeeScript 描述。

由于是第一篇,所以先挑个简单的写了~

算法

其实思路挺简单的,主要是判断矩形的四个点与圆的圆心距离,是否都小于圆的半径。

Group Created with Sketch.

计算两点之间的距离

要算两点之间的距离是非常容易的,设 A(x1, y1)、B(x2, y2),则有

$$ |AB|=\sqrt{(x1-x2)^2+(y1-y2)^2} $$

嗯……其实比较简单,以后继续分享~

计蒜客【挑战难题】系列讲解(十)寻找插入位置

题目

第10题:寻找插入位置

  给定一个已经升序排好序的数组,以及一个数target,如果target在数组中,返回它在数组中的位置。

  否则,返回target插入数组后它应该在的位置。
  假设数组中没有重复的数。以下是简单的示例:
  [1,3,5,6], 5 → 2
  [1,3,5,6], 2 → 1
  [1,3,5,6], 7 → 4
  [1,3,5,6], 0 → 0
  提示:输入一个整数n,以及其对应的数组A[n],最后输入target
  searchInsert(int A[], int n, int target)

- 阅读剩余部分 -

计蒜客【挑战难题】系列讲解(九)元素移除

题目

第9题:元素移除

  给定一个已经升序排好序的数组,以及一个数target,如果target在数组中,返回它在数组中的位置。

  否则,返回target插入数组后它应该在的位置。
  假设数组中没有重复的数。以下是简单的示例:
  [1,3,5,6], 5 → 2
  [1,3,5,6], 2 → 1
  [1,3,5,6], 7 → 4
  [1,3,5,6], 0 → 0
  提示:输入一个整数n,以及其对应的数组A[n],最后输入target
  searchInsert(int A[], int n, int target)

- 阅读剩余部分 -

计蒜客【挑战难题】系列讲解(八)字符串长度

题目

第8题:字符串长度

  在右侧我们给出了一个已经基本完成的程序,读入了一个字符串,调用了一个叫 str_len 的函数来计算这个字符串的长度,并输出。
聪明的你应该已经发现了,这个叫 str_len 的函数并没有完成,在不修改函数原型的情况下,请完成 str_len 函数,实现我们上述的功能吧。

- 阅读剩余部分 -

计蒜客【挑战难题】系列讲解(七)奇怪的国家

题目

第7题:奇怪的国家

  有一个奇怪的国家,里面的国民对于事情的态度永远只有两面。当两个人遇到一起讨论一个事情的时候——两个持赞同观点的人遇到一起后会对这个事情都继续赞同;一个持赞同观点的人遇到一个持不赞同观点的人的时候,两人都会不再继续赞同;两个持不赞同观点的人遇到一起讨论后反而会对这个事情开始赞同。
  输入包括两行,每行包括N个数字(1≤N≤50),分别表示两个人对于N个事情对应的看法——0表示不赞同、1表示赞同。
  输出包括一行,包括N个数字,表示两人相遇后,对于这N件事情的最终看法。

- 阅读剩余部分 -