package frequent;
import java.util.HashMap;
import java.util.Map;
public class Frequent_number {
//Find the most frequent integer in an array
public static void main(String[] args) {
int arr[]= {1,2,3,4,3,2,2,3,3};
System.out.println(getFrequent(arr));
System.out.println(getFrequentBySorting(arr));
}
//Using Map , TC: O(n) SC: O(n)
static public int getFrequent(int arr[]){
int ans=0;
Map<Integer,Integer> m = new HashMap<>();
for(int i:arr){
if(m.containsKey(i)){
m.put(i, m.get(i)+1);
}else{
m.put(i, 1);
}
}
int maxVal=0;
for(Integer in: m.keySet()){
if(m.get(in)>maxVal){
ans=in;
maxVal = m.get(in);
}
}
return ans;
}
//Sort the array and then find it TC: O(nlogn) SC: O(1)
public static int getFrequentBySorting(int arr[]){
int current=arr[0];
int ansCount=0;
int tempCount=0;
int ans=current;
for(int i:arr){
if(i==current){
tempCount++;
}
if(tempCount>ansCount){
ansCount=tempCount;
ans=i;
}
current=i;
}
return ans;
}
}
Я буду второй Реальный мир Haskell. После посещения #stackoverflow Канала IRC (irc.freenode.net) На данный момент я имею, говорил с двумя авторами, один в Reddit и один на #haskell канале на том же сервере как ТАК канал, и они были только полезны в моих поисках для изучения Haskell. Это - первый раз, когда я настоятельно рекомендовал бы книгу по программированию любому.
Для C++ я - большой поклонник Общепринятая истина C++: Существенное Промежуточное Программирование , мне нравится этот, оно организовано в маленькие разделы (обычно меньше чем 5 страниц за тему), Таким образом, для меня легко захватить его и читать на понятиях, которые я должен рассмотреть.
Это - необходимость чтение для меня накануне ночью и на плоскости к собеседованию.
Для Java EE 5 существует отдельное учебное учебное руководство по JEE. Это полезно, поскольку люди часто спрашивают о персистентности и xml, связывающем в Java.
Java: SCJP для Java 6. Я все еще использую его в качестве ссылки.
Для REALbasic:
Buginning REALbasic, От Новичка Профессионалу Jerry Lee Ford
Очень основной, но хороший способ начать
я добавил бы "Практический язык Common LISP" Peter Seibel к списку шепелявости. Это особенно хорошо в обеспечении примеров (парсинг MP3, shoutcast сервер, компилятор HTML), которые актуальны.
Java
Java Вкратце.
имя является чем-то вроде неправильного употребления, потому что это является довольно толстым, но это действительно имеет все, что необходимо изучить Java.
Для PHP я рекомендовал бы Усовершенствованное Программирование PHP George Schlossnagle. Если Вы просто начинаете в PHP, это - вероятно, не лучшая книга для запуска, но после того, как у Вас есть идея того, что Вы делаете, это - книга, которая (по-моему), говорит Вам много лучших практик и подсказок, что Вы могли бы пропустить иначе.
Для изучения Lisp, я был, рекомендуют читать Практический язык Common LISP Peter Seibel. Этот доступен онлайн в http://www.gigamonkeys.com/book/ .
Для Lua, я рекомендую Программирование в Lua Roberto Ierusalimschy. Эта книга не является лучшей книгой программирования там, но среди текущего выбора книг Lua, это было бы лучшим. Этот первый выпуск книги также доступен онлайн в http://www.lua.org/pil/ . Как задняя обложка книги упоминает, книга ориентирована к тем, у кого уже есть некоторый опыт программирования на другом языке.
Один сайт, к которому я продолжаю возвращаться, http://www.javapractices.com . Это покрывает большинство методов, которые обсуждены в Эффективной книге Java. Также другой хороший сайт для проверения примеров кодирования (от основного до усовершенствованного) http://www.java2s.com
Некоторые книги по Java я рекомендовал бы:
Для Новичков: Направляйтесь Первый Java является превосходным введением в язык. И я должен также упомянуть Главные Первые Шаблоны разработки, который является большим ресурсом для учеников для схватывания то, что может быть довольно сложными понятиями. Спокойный забавный стиль этих книг идеален для людей, плохо знакомых с программированием.
Действительно полная, всесторонняя книга о Java SE является Взглядами Bruce Eckel В Java v4. (На уровне чуть менее чем 1 500 страниц это хорошо для силового тренинга также!) Для тех из нас не на крупных премиях банка существуют более старые версии, доступные для бесплатной загрузки.
Конечно, как многие люди уже упомянули, Эффективный Java v2 Josh Bloch является основной частью библиотеки любого Java-разработчика.
Шаблоны проектирования в Ruby:
http://www.amazon.com/Design-Patterns-Ruby-Addison-Wesley-Professional/dp/0321490452#reader
Я обнаружил, что Programming Erlang - отличная книга для изучения Erlang. Он написан парнем, создавшим язык, и очень хорошо охватывает как базовые, так и продвинутые темы. Там тоже есть отличные примеры.
C: «Программирование на C» , Стивен Г. Кочан, Библиотека разработчика .
Организованный, ясный, продуманный, красивый.
Java
Java Notes - Очень удобно для начинающих программистов Java
C
KN King имеет список рекомендуемых C-книг на его личной странице :
Core Java Vol 1 и 2.
Кей С. Хорстманн и Гэри Корнелл
Лучшая книга по Java КОГДА-ЛИБО !!!!!!
Perl Core Language - Little Black Book - отличный справочник!