220.contains-duplicate-iii.go 486 B

1234567891011121314151617181920212223242526272829303132
  1. func containsNearbyAlmostDuplicate(nums []int, k int, t int) bool {
  2. mq := NewMagicQueue(k + 1)
  3. for i := range nums {
  4. mq.Enqueue(nums[i])
  5. if mq.MinGap() <= t {
  6. return true
  7. }
  8. }
  9. return false
  10. }
  11. type MagicQueue struct {
  12. Size int
  13. MQ []int
  14. }
  15. func NewMagicQueue(size int) MagicQueue {
  16. return MagicQueue{size, make([]int, 0)}
  17. }
  18. func (mq MagicQueue) MinGap() int {
  19. return 0
  20. }
  21. func (mq MagicQueue) Len() int {
  22. return len(mq.MQ)
  23. }
  24. func (mq *MagicQueue) Enqueue(x int) {
  25. }